On Wednesday 04 April 2012 03:12:27 Simon Glass wrote: > On Sun, Apr 1, 2012 at 12:48 PM, Mike Frysinger wrote: > > On Saturday 31 March 2012 03:30:55 Simon Glass wrote: > >> --- a/common/cmd_pxe.c > >> +++ b/common/cmd_pxe.c > >> > >> +int run_command_list(const char *cmd, int len, int flag) > >> +{ > >> + int need_buff = 1; > >> + char *buff = (char *)cmd; /* cast away const */ > >> + int rcode = 0; > >> + > >> + if (len == -1) { > >> + len = strlen(cmd); > >> +#ifdef CONFIG_SYS_HUSH_PARSER > >> + /* hush will never change our string */ > >> + need_buff = 0; > >> +#else > >> + /* the built-in parser will change our string if it sees > >> \n */ + need_buff = strchr(cmd, '\n') != NULL; > >> +#endif > >> + } > > > > we have memchr(), so you should be able to split the len==-1 and the > > need_buff logic into two sep steps > > Are you saying that we should do this check if len is not -1 also? > > I am only doing it when len is not specified, since if a length is > provided we must allocate. This is used by the source command, which > does not necessary have a nul-terminated string.
looks to me like it should be: int need_buff; if (len == -1) len = strlen(cmd); #ifdef CONFIG_SYS_HUSH_PARSER need_buff = 0; #else need_buff = memchr(cmd, '\n', len) != NULL; #endif if (need_buff) { ... } > > also, should you handle the case where '\n' is the very last char ? or > > not bother ? > > Do you mean not allocate in that case? I don't think it is a common > situation is it? i don't know how commands get passed down (as i've never poked that area before) which is why i'm asking -mike
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot