[PATCH 1/1] sanbox: add linux_execve and linux_exec command

Sascha Hauer s.hauer at pengutronix.de
Tue Nov 22 15:07:48 EST 2011


Hi Jean Christophe,

On Sun, Oct 23, 2011 at 05:59:21PM +0800, Jean-Christophe PLAGNIOL-VILLARD wrote:
> this will allow to execute a program of the host from barebox
> +
> +#include <common.h>
> +#include <command.h>
> +#include <mach/linux.h>
> +
> +static int do_linux_exec(struct command *cmdtp, int argc, char *argv[])
> +{
> +	int ret;
> +	char **newargv;
> +	char *newenv[] = { NULL };
> +	int i, j;
> +
> +	if (argc < 2)
> +		return 1;
> +
> +	newargv = xzalloc(sizeof(char*) * argc);
> +
> +	for (j = 0, i = 1; i < argc; i++, j++)
> +		newargv[j] = argv[i];
> +
> +	newargv[j] = NULL;
> +	ret = linux_execve(argv[1], newargv, newenv);
> +
> +	if (ret)
> +		return 1;
> +
> +	return 0;

You are loosing memory here.

Sascha

> +}
> +
> +BAREBOX_CMD_HELP_START(linux_exec)
> +BAREBOX_CMD_HELP_USAGE("linux_exec ...\n")
> +BAREBOX_CMD_HELP_SHORT("Execute a command on the host\n")
> +BAREBOX_CMD_HELP_END
> +
> +BAREBOX_CMD_START(linux_exec)
> +	.cmd		= do_linux_exec,
> +	.usage		= "Execute a command on the host",
> +	BAREBOX_CMD_HELP(cmd_linux_exec_help)
> +BAREBOX_CMD_END
> -- 
> 1.7.7
> 
> 
> _______________________________________________
> barebox mailing list
> barebox at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/barebox
> 

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |



More information about the barebox mailing list