Modified: branches/PR-5978442/launchd/src/liblaunch.c (23652 => 23653)
--- branches/PR-5978442/launchd/src/liblaunch.c 2008-08-13 18:23:02 UTC (rev 23652)
+++ branches/PR-5978442/launchd/src/liblaunch.c 2008-08-13 23:53:14 UTC (rev 23653)
@@ -618,6 +618,7 @@
o_in_w->type = host2wire(d->type);
+ size_t pad_len = 0;
switch (d->type) {
case LAUNCH_DATA_INTEGER:
o_in_w->number = host2wire(d->number);
@@ -648,7 +649,8 @@
memcpy(where, d->string, strlen(d->string) + 1);
/* Zero padded data. */
- bzero(o_in_w + (total_data_len - len));
+ pad_len = total_data_len - d->string_len;
+ bzero(o_in_w + d->string_len + 1, pad_len);
break;
case LAUNCH_DATA_OPAQUE:
@@ -660,7 +662,8 @@
memcpy(where, d->opaque, d->opaque_size);
/* Zero padded data. */
- bzero(o_in_w + (total_data_len - len));
+ pad_len = total_data_len - d->opaque_size;
+ bzero(o_in_w + d->opaque_size, pad_len);
break;
case LAUNCH_DATA_DICTIONARY: