haserl: 0.9.25 array vars fix
authorPeter Korsgaard <jacmet@sunsite.dk>
Mon, 20 Jul 2009 20:17:31 +0000 (22:17 +0200)
committerPeter Korsgaard <jacmet@sunsite.dk>
Mon, 20 Jul 2009 20:17:31 +0000 (22:17 +0200)
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
package/haserl/haserl-0.9.25-array-vars-fix.patch [new file with mode: 0644]

diff --git a/package/haserl/haserl-0.9.25-array-vars-fix.patch b/package/haserl/haserl-0.9.25-array-vars-fix.patch
new file mode 100644 (file)
index 0000000..e6c959a
--- /dev/null
@@ -0,0 +1,19 @@
+haserl: array vars fix
+
+Fix buffer overflow error. Len is the length of the name= part of the
+name=value string, not the value part.
+
+Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
+Index: haserl-0.9.25/src/haserl.c
+===================================================================
+--- haserl-0.9.25.orig/src/haserl.c    2009-07-20 15:05:26.000000000 +0200
++++ haserl-0.9.25/src/haserl.c 2009-07-20 15:06:05.000000000 +0200
+@@ -269,7 +269,7 @@
+             /* if an array, create a new string with this
+              * value added to the end of the old value(s) 
+              */
+-            temp = xmalloc (strlen (cur->buf) + len + 1);
++            temp = xmalloc (strlen (cur->buf) + strlen(entry) - len + 1);
+             memmove (temp, cur->buf, strlen (cur->buf) + 1);
+             strcat (temp, "\n");
+             strcat (temp, str + keylen + 3);