summaryrefslogtreecommitdiffstats
path: root/package/haserl/haserl-0.9.25-array-vars-fix.patch
blob: e6c959a66b4dfafc915cbfda9edc08a619f916f4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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);