diff --git a/usr.sbin/pccard/pccardd/readcis.c b/usr.sbin/pccard/pccardd/readcis.c index ddfd6fcba78..6fd7c7bb259 100644 --- a/usr.sbin/pccard/pccardd/readcis.c +++ b/usr.sbin/pccard/pccardd/readcis.c @@ -170,29 +170,16 @@ freecis(struct cis *cp) static void cis_info(struct cis *cp, unsigned char *p, int len) { - unsigned char *end = p + len; *cp->manuf = *cp->vers = *cp->add_info1 = *cp->add_info2 = '\0'; cp->maj_v = *p++; cp->min_v = *p++; - if (p >= end) - return; strncpy(cp->manuf, p, CIS_MAXSTR - 1); - cp->manuf[CIS_MAXSTR - 1] = '\0'; - p += strlen(p); - if (p >= end) - return; + while (*p++); strncpy(cp->vers, p, CIS_MAXSTR - 1); - cp->vers[CIS_MAXSTR - 1] = '\0'; - p += strlen(p); - if (p >= end) - return; + while (*p++); strncpy(cp->add_info1, p, CIS_MAXSTR - 1); - cp->add_info1[CIS_MAXSTR - 1] = '\0'; - p += strlen(p); - if (p >= end) - return; + while (*p++); strncpy(cp->add_info2, p, CIS_MAXSTR - 1); - cp->add_info2[CIS_MAXSTR - 1] = '\0'; } /*