summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFabio Erculiani2012-01-03 10:38:35 +0100
committerRiku Voipio2012-04-06 17:49:57 +0200
commit84803b87a183bd71963584c3be5ca838d32c55df (patch)
tree9c5473aede26fc7a0fc28711f9705cc613fb1146
parentlinux-user: improve fake /proc/self/stat making `ps` not segfault. (diff)
downloadqemu-84803b87a183bd71963584c3be5ca838d32c55df.tar.gz
qemu-84803b87a183bd71963584c3be5ca838d32c55df.tar.xz
qemu-84803b87a183bd71963584c3be5ca838d32c55df.zip
linux-user: target_argv is placed on ts->bprm->argv and can't be freed()
TaskState contains linux_bprm struct which encapsulates argv among other things. argv might be used around the code and is expected to contain valid data. Before this patch, ts->bprm->argv was NULL due to it being freed right after loader_exec(). Signed-off-by: Fabio Erculiani <lxnay@sabayon.org> Acked-by: Alexander Graf <agraf@suse.de> Signed-off-by: Alexander Graf <agraf@suse.de> Signed-off-by: Riku Voipio <riku.voipio@linaro.org>
-rw-r--r--linux-user/main.c5
1 files changed, 0 insertions, 5 deletions
diff --git a/linux-user/main.c b/linux-user/main.c
index 962677e01d..25701403e4 100644
--- a/linux-user/main.c
+++ b/linux-user/main.c
@@ -3486,11 +3486,6 @@ int main(int argc, char **argv, char **envp)
_exit(1);
}
- for (i = 0; i < target_argc; i++) {
- free(target_argv[i]);
- }
- free(target_argv);
-
for (wrk = target_environ; *wrk; wrk++) {
free(*wrk);
}