diff options
Diffstat (limited to 'packages/ipkg/ipkg-0.99.129/buffer-overflow.patch')
-rw-r--r-- | packages/ipkg/ipkg-0.99.129/buffer-overflow.patch | 38 |
1 files changed, 0 insertions, 38 deletions
diff --git a/packages/ipkg/ipkg-0.99.129/buffer-overflow.patch b/packages/ipkg/ipkg-0.99.129/buffer-overflow.patch deleted file mode 100644 index 91234fd53f..0000000000 --- a/packages/ipkg/ipkg-0.99.129/buffer-overflow.patch +++ /dev/null @@ -1,38 +0,0 @@ -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); - } |