summaryrefslogtreecommitdiffstats
path: root/package/opkg
diff options
context:
space:
mode:
authorjow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73>2009-12-21 15:09:08 +0000
committerjow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73>2009-12-21 15:09:08 +0000
commiteec3ede2572fb86d69a4f1da1dc11ae6d8e46ea7 (patch)
treeefa91ddaef65ffd1a89c980f5aac71392c3561b3 /package/opkg
parent94c71fdfb3134025760e91c29fb66f052170e7c8 (diff)
[package] opkg: fix invalid free triggered by 011-old-config-location.patch and replace 012-cleanup-tmpdir.patch with upstream fix
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@18879 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/opkg')
-rw-r--r--package/opkg/patches/011-old-config-location.patch2
-rw-r--r--package/opkg/patches/012-cleanup-tmpdir.patch37
2 files changed, 31 insertions, 8 deletions
diff --git a/package/opkg/patches/011-old-config-location.patch b/package/opkg/patches/011-old-config-location.patch
index 40d0b7566..518993b25 100644
--- a/package/opkg/patches/011-old-config-location.patch
+++ b/package/opkg/patches/011-old-config-location.patch
@@ -7,7 +7,7 @@
-
+
+ if(!conf->conf_file)
-+ conf->conf_file = "/etc/opkg.conf";
++ conf->conf_file = xstrdup("/etc/opkg.conf");
+
if (parse_err)
return parse_err;
diff --git a/package/opkg/patches/012-cleanup-tmpdir.patch b/package/opkg/patches/012-cleanup-tmpdir.patch
index f6d5e8732..d794a070e 100644
--- a/package/opkg/patches/012-cleanup-tmpdir.patch
+++ b/package/opkg/patches/012-cleanup-tmpdir.patch
@@ -1,12 +1,35 @@
--- a/src/opkg-cl.c
+++ b/src/opkg-cl.c
-@@ -333,6 +333,9 @@
+@@ -263,7 +263,7 @@
+ int
+ main(int argc, char *argv[])
+ {
+- int opts;
++ int opts, err = -1;
+ char *cmd_name;
+ opkg_cmd_t *cmd;
+ int nocheckfordirorfile = 0;
+@@ -327,15 +327,8 @@
+ usage();
+ }
+
+- if (opkg_cmd_exec(cmd, argc - opts, (const char **) (argv + opts)))
+- goto err2;
++ err = opkg_cmd_exec(cmd, argc - opts, (const char **) (argv + opts));
+
+- print_error_list();
+- free_error_list();
+-
+- return 0;
+-
+-err2:
+ #ifdef HAVE_CURL
+ opkg_curl_cleanup();
+ #endif
+@@ -346,5 +339,5 @@
print_error_list();
free_error_list();
-+ if( conf->tmp_dir )
-+ rm_r(conf->tmp_dir);
-+
- return 0;
-
- err2:
+- return -1;
++ return err;
+ }