linux-user: target_argv is placed on ts->bprm->argv and can't be freed()
authorFabio Erculiani <lxnay@sabayon.org>
Tue, 3 Jan 2012 09:38:35 +0000 (09:38 +0000)
committerRiku Voipio <riku.voipio@linaro.org>
Fri, 6 Apr 2012 15:49:57 +0000 (18:49 +0300)
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>
linux-user/main.c

index 962677e01d30f8455c6bdbc96b4822d0a56c021f..25701403e40cd4666f0929cf361393f76b4e32c6 100644 (file)
@@ -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);
     }