Revision
23653
Author
dsorresso@apple.com
Date
2008-08-13 16:53:14 -0700 (Wed, 13 Aug 2008)

Log Message

One more time with proper bzero() call. 

Modified Paths

Diff

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: