[launchd-changes] [23654] branches/PR-5978442/launchd/src/liblaunch.c
source_changes at macosforge.org
source_changes at macosforge.org
Wed Aug 13 18:16:16 PDT 2008
Revision: 23654
http://trac.macosforge.org/projects/launchd/changeset/23654
Author: dsorresso at apple.com
Date: 2008-08-13 18:16:16 -0700 (Wed, 13 Aug 2008)
Log Message:
-----------
Changed total_data_len to node_data_len to make it more obvious what's going on.
Fixed a potential pointer math problem.
Modified Paths:
--------------
branches/PR-5978442/launchd/src/liblaunch.c
Modified: branches/PR-5978442/launchd/src/liblaunch.c
===================================================================
--- branches/PR-5978442/launchd/src/liblaunch.c 2008-08-13 23:53:14 UTC (rev 23653)
+++ branches/PR-5978442/launchd/src/liblaunch.c 2008-08-14 01:16:16 UTC (rev 23654)
@@ -608,13 +608,13 @@
launch_data_pack(launch_data_t d, void *where, size_t len, int *fd_where, size_t *fd_cnt)
{
launch_data_t o_in_w = where;
- size_t i, rsz, total_data_len = sizeof(struct _launch_data);
+ size_t i, rsz, node_data_len = sizeof(struct _launch_data);
- if (total_data_len > len) {
+ if (node_data_len > len) {
return 0;
}
- where += total_data_len;
+ where += node_data_len;
o_in_w->type = host2wire(d->type);
@@ -641,55 +641,55 @@
break;
case LAUNCH_DATA_STRING:
o_in_w->string_len = host2wire(d->string_len);
- total_data_len += ROUND_TO_64BIT_WORD_SIZE(strlen(d->string) + 1);
+ node_data_len += ROUND_TO_64BIT_WORD_SIZE(d->string_len + 1);
- if (total_data_len > len) {
+ if (node_data_len > len) {
return 0;
}
- memcpy(where, d->string, strlen(d->string) + 1);
+ memcpy(where, d->string, d->string_len + 1);
/* Zero padded data. */
- pad_len = total_data_len - d->string_len;
- bzero(o_in_w + d->string_len + 1, pad_len);
+ pad_len = ROUND_TO_64BIT_WORD_SIZE(d->string_len + 1) - (d->string_len + 1);
+ bzero(where + d->string_len + 1, pad_len);
break;
case LAUNCH_DATA_OPAQUE:
o_in_w->opaque_size = host2wire(d->opaque_size);
- total_data_len += ROUND_TO_64BIT_WORD_SIZE(d->opaque_size);
- if (total_data_len > len) {
+ node_data_len += ROUND_TO_64BIT_WORD_SIZE(d->opaque_size);
+ if (node_data_len > len) {
return 0;
}
memcpy(where, d->opaque, d->opaque_size);
/* Zero padded data. */
- pad_len = total_data_len - d->opaque_size;
- bzero(o_in_w + d->opaque_size, pad_len);
+ pad_len = ROUND_TO_64BIT_WORD_SIZE(d->opaque_size) - d->opaque_size;
+ bzero(where + d->opaque_size, pad_len);
break;
case LAUNCH_DATA_DICTIONARY:
case LAUNCH_DATA_ARRAY:
o_in_w->_array_cnt = host2wire(d->_array_cnt);
- total_data_len += d->_array_cnt * sizeof(uint64_t);
- if (total_data_len > len) {
+ node_data_len += d->_array_cnt * sizeof(uint64_t);
+ if (node_data_len > len) {
return 0;
}
where += d->_array_cnt * sizeof(uint64_t);
for (i = 0; i < d->_array_cnt; i++) {
- rsz = launch_data_pack(d->_array[i], where, len - total_data_len, fd_where, fd_cnt);
+ rsz = launch_data_pack(d->_array[i], where, len - node_data_len, fd_where, fd_cnt);
if (rsz == 0) {
return 0;
}
where += rsz;
- total_data_len += rsz;
+ node_data_len += rsz;
}
break;
default:
break;
}
- return total_data_len;
+ return node_data_len;
}
launch_data_t
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/launchd-changes/attachments/20080813/ad48d5ba/attachment-0001.html
More information about the launchd-changes
mailing list