X-Git-Url: https://git.archive.openwrt.org/?p=project%2Fuci.git;a=blobdiff_plain;f=file.c;h=ae0008f40f0185cd3e2d4916002c95453f079df2;hp=19c6b07d6eb04b58e546b672fc6c9c119fdf5ef6;hb=a05278ae05df910e6a3a450d862fc1b53f138eb7;hpb=8a06b55c63b13123ffcec33aff7f1fd752786dd1 diff --git a/file.c b/file.c index 19c6b07..ae0008f 100644 --- a/file.c +++ b/file.c @@ -186,19 +186,27 @@ static void uci_parse_line(struct uci_context *ctx, bool single) case 'p': if ((word[1] == 0) || !strcmp(word + 1, "ackage")) uci_parse_package(ctx, &word, single); + else + goto invalid; break; case 'c': if ((word[1] == 0) || !strcmp(word + 1, "onfig")) uci_parse_config(ctx, &word); + else + goto invalid; break; case 'o': if ((word[1] == 0) || !strcmp(word + 1, "ption")) uci_parse_option(ctx, &word); + else + goto invalid; break; default: - uci_parse_error(ctx, word, "unterminated command"); - break; + goto invalid; } + continue; +invalid: + uci_parse_error(ctx, word, "invalid command"); } while (1); }