sscanf overrun
This commit is contained in:
parent
f9345ff71e
commit
682aab7791
|
@ -1,4 +1,4 @@
|
||||||
/* $NetBSD: quip_client.c,v 1.6 2002/03/05 04:11:52 itojun Exp $ */
|
/* $NetBSD: quip_client.c,v 1.7 2003/05/17 14:54:53 itojun Exp $ */
|
||||||
/* $KAME: quip_client.c,v 1.7 2001/12/28 00:50:28 itojun Exp $ */
|
/* $KAME: quip_client.c,v 1.7 2001/12/28 00:50:28 itojun Exp $ */
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 1999-2000
|
* Copyright (C) 1999-2000
|
||||||
|
@ -209,7 +209,8 @@ quip_recvresponse(FILE *fp, char *header, char *body, int *blen)
|
||||||
if (buf[0] == '\n') {
|
if (buf[0] == '\n') {
|
||||||
/* ignore blank lines */
|
/* ignore blank lines */
|
||||||
}
|
}
|
||||||
else if (sscanf(buf, "%s %d",
|
/* sizeof(version) == 1024 */
|
||||||
|
else if (sscanf(buf, "%1023s %d",
|
||||||
version, &code) != 2) {
|
version, &code) != 2) {
|
||||||
/* can't get result code */
|
/* can't get result code */
|
||||||
fpurge(fp);
|
fpurge(fp);
|
||||||
|
@ -319,7 +320,7 @@ quip_selectinterface(char *ifname)
|
||||||
|
|
||||||
cp = buf;
|
cp = buf;
|
||||||
while (1) {
|
while (1) {
|
||||||
if (sscanf(cp, "%x %s", &if_index, interface) != 2)
|
if (sscanf(cp, "%x %63s", &if_index, interface) != 2)
|
||||||
break;
|
break;
|
||||||
if (ifname == NULL) {
|
if (ifname == NULL) {
|
||||||
/* if name isn't specified, return the 1st entry */
|
/* if name isn't specified, return the 1st entry */
|
||||||
|
@ -357,7 +358,7 @@ quip_selectqdisc(char *ifname, char *qdisc_name)
|
||||||
if (result_code != 200)
|
if (result_code != 200)
|
||||||
errx(1, "can't get qdisc info");
|
errx(1, "can't get qdisc info");
|
||||||
|
|
||||||
if (sscanf(buf, "%s", qdisc) != 1)
|
if (sscanf(buf, "%63s", qdisc) != 1)
|
||||||
errx(1, "can't get qdisc name");
|
errx(1, "can't get qdisc name");
|
||||||
|
|
||||||
if (qdisc_name != NULL && strcmp(qdisc, qdisc_name) != 0)
|
if (qdisc_name != NULL && strcmp(qdisc, qdisc_name) != 0)
|
||||||
|
@ -473,7 +474,7 @@ quip_printconfig(void)
|
||||||
|
|
||||||
cp = buf;
|
cp = buf;
|
||||||
while (1) {
|
while (1) {
|
||||||
if (sscanf(cp, "%lx %s", &handle, name) != 2)
|
if (sscanf(cp, "%lx %255s", &handle, name) != 2)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
if ((p = strchr(name, ':')) == NULL)
|
if ((p = strchr(name, ':')) == NULL)
|
||||||
|
|
Loading…
Reference in New Issue