nvram: fix crash when get, set or unset is invoked without argument (#7263)

SVN-Revision: 21288
This commit is contained in:
Jo-Philipp Wich 2010-05-02 00:45:03 +00:00
parent 9bf8e9a230
commit 395a1f4e0c
2 changed files with 26 additions and 14 deletions

View file

@ -8,7 +8,7 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=nvram PKG_NAME:=nvram
PKG_RELEASE:=5 PKG_RELEASE:=6
PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME) PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)

View file

@ -165,20 +165,32 @@ int main( int argc, const char *argv[] )
stat = do_info(nvram); stat = do_info(nvram);
done++; done++;
} }
else if( !strcmp(argv[i], "get") && ++i < argc ) else if( !strcmp(argv[i], "get") || !strcmp(argv[i], "unset") || !strcmp(argv[i], "set") )
{ {
stat = do_get(nvram, argv[i]); if( (i+1) < argc )
done++; {
} switch(argv[i++][0])
else if( !strcmp(argv[i], "unset") && ++i < argc ) {
{ case 'g':
stat = do_unset(nvram, argv[i]); stat = do_get(nvram, argv[i]);
done++; break;
}
else if( !strcmp(argv[i], "set") && ++i < argc ) case 'u':
{ stat = do_unset(nvram, argv[i]);
stat = do_set(nvram, argv[i]); break;
done++;
case 's':
stat = do_set(nvram, argv[i]);
break;
}
done++;
}
else
{
fprintf(stderr, "Command '%s' requires an argument!\n", argv[i]);
done = 0;
break;
}
} }
else if( !strcmp(argv[i], "commit") ) else if( !strcmp(argv[i], "commit") )
{ {