package/swconfig: add sanity checks to prevent a segfault

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@24932 3c298f89-4303-0410-b956-a3cf2f4a3e73
master
Gabor Juhos 2011-01-08 17:30:33 +00:00
parent 23a3294744
commit ca574cb517
2 changed files with 16 additions and 1 deletions

View File

@ -8,7 +8,7 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=swconfig
PKG_RELEASE:=6
PKG_RELEASE:=7
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/kernel.mk

View File

@ -368,11 +368,26 @@ int swlib_set_attr_string(struct switch_dev *dev, struct switch_attr *a, int por
ptr = (char *)str;
while(ptr && *ptr)
{
while(*ptr && isspace(*ptr))
ptr++;
if (!*ptr)
break;
if (!isdigit(*ptr))
return -1;
if (val.len >= dev->ports)
return -1;
ports[val.len].flags = 0;
ports[val.len].id = strtoul(ptr, &ptr, 10);
while(*ptr && !isspace(*ptr)) {
if (*ptr == 't')
ports[val.len].flags |= SWLIB_PORT_FLAG_TAGGED;
else
return -1;
ptr++;
}
if (*ptr)