diff options
author | Fabio Erculiani <lxnay@sabayon.org> | 2012-01-03 09:38:35 +0000 |
---|---|---|
committer | Riku Voipio <riku.voipio@linaro.org> | 2012-04-06 18:49:57 +0300 |
commit | 84803b87a183bd71963584c3be5ca838d32c55df (patch) | |
tree | 9c5473aede26fc7a0fc28711f9705cc613fb1146 /linux-user/main.c | |
parent | e0e65bee16ae8515315d2bad02e021f3fb5dd236 (diff) | |
download | qemu-84803b87a183bd71963584c3be5ca838d32c55df.zip qemu-84803b87a183bd71963584c3be5ca838d32c55df.tar.gz qemu-84803b87a183bd71963584c3be5ca838d32c55df.tar.bz2 |
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>
Diffstat (limited to 'linux-user/main.c')
-rw-r--r-- | linux-user/main.c | 5 |
1 files changed, 0 insertions, 5 deletions
diff --git a/linux-user/main.c b/linux-user/main.c index 962677e..2570140 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); } |