From: jow <jow@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Date: Mon, 21 Dec 2009 15:09:08 +0000 (+0000)
Subject: [package] opkg: fix invalid free triggered by 011-old-config-location.patch and repla... 
X-Git-Url: https://git.rohieb.name/openwrt.git/commitdiff_plain/eec3ede2572fb86d69a4f1da1dc11ae6d8e46ea7?ds=inline

[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
---

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;
+ }