PERFORCE change 129580 for review
Alfred Perlstein
alfred at freebsd.org
Mon Nov 26 23:56:51 PST 2007
* Hans Petter Selasky <hselasky at FreeBSD.org> [071126 12:25] wrote:
> http://perforce.freebsd.org/chv.cgi?CH=129580
>
> Change 129580 by hselasky at hselasky_laptop001 on 2007/11/26 20:24:39
>
>
> Bugfix.
>
> Affected files ...
>
> .. //depot/projects/usb/src/sys/dev/usb/ulpt.c#29 edit
>
> Differences ...
>
> ==== //depot/projects/usb/src/sys/dev/usb/ulpt.c#29 (text+ko) ====
>
> @@ -707,7 +707,7 @@
> for (p = str - 1; p; p = strchr(p, ';')) {
> p++; /* skip ';' */
> if (strncmp(p, "MFG:", 4) == 0 ||
> - strncmp(p, "MANUFACTURER:", 14) == 0 ||
> + strncmp(p, "MANUFACTURER:", 13) == 0 ||
> strncmp(p, "MDL:", 4) == 0 ||
> strncmp(p, "MODEL:", 6) == 0) {
> q = strchr(p, ';');
This can be done with the following macro to avoid bugs:
/* used as so: CONSTSTRCMP(p, "MFG:") */
#define CONSTSTRCMP(str, cstr) strncmp(str, cstr, sizeof(cstr))
(you may need a -1 after the sizeof, I forget at this hour.)
of course this fails, badly if one doesn't use a const string as
the second arg.
For non time critical code one could replace the sizeof() with
strlen().
--
- Alfred Perlstein
More information about the p4-projects
mailing list