aboutsummaryrefslogtreecommitdiffstats
path: root/ipkg/ipkg-0.99.129/buffer-overflow.patch
diff options
context:
space:
mode:
authorChris Larson <clarson@kergoth.com>2004-11-09 00:36:47 +0000
committerChris Larson <clarson@kergoth.com>2004-11-09 00:36:47 +0000
commitf96441b9faf769c9ecdd4d338b605ea3d0cc4010 (patch)
treeedb17ec2c4ea13c5acb1c7350957a249a820e28d /ipkg/ipkg-0.99.129/buffer-overflow.patch
parentb6588aa6851fb220cedc387d21c51513ef8d67f4 (diff)
downloadopenembedded-f96441b9faf769c9ecdd4d338b605ea3d0cc4010.tar.gz
Disable bk EOLN_NATIVE conversions on all files in packages FILESPATHs, to prevent it screwing up patches.
BKrev: 4190111fA4MuVozAqwE7xOSL9fr-TA
Diffstat (limited to 'ipkg/ipkg-0.99.129/buffer-overflow.patch')
-rw-r--r--ipkg/ipkg-0.99.129/buffer-overflow.patch38
1 files changed, 38 insertions, 0 deletions
diff --git a/ipkg/ipkg-0.99.129/buffer-overflow.patch b/ipkg/ipkg-0.99.129/buffer-overflow.patch
index e69de29bb2..91234fd53f 100644
--- a/ipkg/ipkg-0.99.129/buffer-overflow.patch
+++ b/ipkg/ipkg-0.99.129/buffer-overflow.patch
@@ -0,0 +1,38 @@
+Index: ipkg_cmd.c
+===================================================================
+RCS file: /cvs/familiar/dist/ipkg/C/ipkg_cmd.c,v
+retrieving revision 1.96
+diff -u -r1.96 ipkg_cmd.c
+--- C/ipkg_cmd.c 19 Aug 2004 10:55:47 -0000 1.96
++++ C/ipkg_cmd.c 11 Sep 2004 19:43:14 -0000
+@@ -860,6 +860,7 @@
+ str_list_elt_t *iter;
+ char *pkg_version;
+ size_t buff_len = 8192;
++ size_t used_len;
+ char *buff ;
+
+ buff = (char *)malloc(buff_len);
+@@ -891,9 +892,20 @@
+ }
+ #else
+ if (buff) {
+- snprintf(buff, buff_len, "Package %s (%s) is installed on %s and has the following files:\n",
+- pkg->name, pkg_version, pkg->dest->name);
++ try_again:
++ used_len = snprintf(buff, buff_len, "Package %s (%s) is installed on %s and has the following files:\n",
++ pkg->name, pkg_version, pkg->dest->name) + 1;
++ if (used_len > buff_len) {
++ buff_len *= 2;
++ buff = realloc (buff, buff_len);
++ goto try_again;
++ }
+ for (iter = installed_files->head; iter; iter = iter->next) {
++ used_len += strlen (iter->data) + 1;
++ while (buff_len <= used_len) {
++ buff_len *= 2;
++ buff = realloc (buff, buff_len);
++ }
+ strncat(buff, iter->data, buff_len);
+ strncat(buff, "\n", buff_len);
+ }