summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--package/haserl/haserl-0.9.25-array-vars-fix.patch19
1 files changed, 19 insertions, 0 deletions
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
index 000000000..e6c959a66
--- /dev/null
+++ b/package/haserl/haserl-0.9.25-array-vars-fix.patch
@@ -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);