diff options
author | Michael Brown | 2006-12-08 04:07:15 +0100 |
---|---|---|
committer | Michael Brown | 2006-12-08 04:07:15 +0100 |
commit | a77b32aaf66e54202e4a578ca719c827ae146321 (patch) | |
tree | 35ce48b4597608c70bda7adb762bcb4974564fb3 /src/core/exec.c | |
parent | Added "exit" back in as a standardised command. (diff) | |
download | ipxe-a77b32aaf66e54202e4a578ca719c827ae146321.tar.gz ipxe-a77b32aaf66e54202e4a578ca719c827ae146321.tar.xz ipxe-a77b32aaf66e54202e4a578ca719c827ae146321.zip |
D'oh d'oh d'oh d'oh d'oh d'oh d'oh d'oh d'oh
Diffstat (limited to 'src/core/exec.c')
-rw-r--r-- | src/core/exec.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/core/exec.c b/src/core/exec.c index a0f0b527..dee81449 100644 --- a/src/core/exec.c +++ b/src/core/exec.c @@ -119,9 +119,12 @@ static int split_args ( char *args, char * argv[] ) { * Execute the named command and arguments. */ int system ( const char *command ) { - char *args = strdup ( command ); + char *args; int argc; - + int rc; + + /* Obtain temporary modifiable copy of command line */ + args = strdup ( command ); if ( ! args ) return -ENOMEM; @@ -134,6 +137,9 @@ int system ( const char *command ) { split_args ( args, argv ); argv[argc] = NULL; - return execv ( argv[0], argv ); + rc = execv ( argv[0], argv ); } + + free ( args ); + return rc; } |