Make ds_cstr() always null-terminate the string.
authorBen Pfaff <blp@nicira.com>
Mon, 29 Dec 2008 21:26:19 +0000 (13:26 -0800)
committerBen Pfaff <blp@nicira.com>
Tue, 13 Jan 2009 01:10:53 +0000 (17:10 -0800)
Most of the time the string in "struct ds" is
null-terminated, but there seem to be a few corner cases
where it is not.  Make ds_cstr() always put in the null
terminator, for safety.

Thanks to Justin for pointing out the problem.

lib/dynamic-string.c

index 2fe8cfb..1df85ac 100644 (file)
@@ -177,8 +177,8 @@ ds_cstr(struct ds *ds)
 {
     if (!ds->string) {
         ds_reserve(ds, 0);
-        ds->string[0] = '\0';
     }
+    ds->string[ds->length] = '\0';
     return ds->string;
 }