Hello, Am 06.06.2016 um 23:29 schrieb Jiandi An: > In serial_parse_handler(), length of strncmp for dtuart should have been > 6, not 5. > > Signed-off-by: Jiandi An <anjia...@codeaurora.org> > --- > xen/drivers/char/serial.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/xen/drivers/char/serial.c b/xen/drivers/char/serial.c > index c583a48..0fc5ced 100644 > --- a/xen/drivers/char/serial.c > +++ b/xen/drivers/char/serial.c > @@ -310,7 +310,7 @@ int __init serial_parse_handle(char *conf) > goto common; > } > > - if ( !strncmp(conf, "dtuart", 5) ) > + if ( !strncmp(conf, "dtuart", 6) )
Do you really want to check for a prefix, that it that conf starts with "dtuart"? If you want to check for an exact string match, you need to include the trailing \0! In that case just use "strcmp()" as there is (AFAIK) not reason to use the n-variant as one of your string is a constant already and thus the comparison will terminate when the \0 of that const-string is reached. Philipp
#include <stdlib.h> #include <stdio.h> #include <string.h> static const char *confs[] = { "dtuar", "dtuart", "dtuartx", NULL }; int main(void) { int i; for (i = 0; confs[i]; i++) { const char *conf = confs[i]; printf("%s\t%d\t%d\n", conf, strncmp(conf, "dtuart", 5), strncmp(conf, "dtuart", 6)); } return 0; }
_______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel