shell/read: check that variable names are sane

function                                             old     new   delta
shell_builtin_read                                  1000    1055     +55
parse_command                                       1460    1463      +3
builtin_umask                                        121     123      +2
is_well_formed_var_name                               73      66      -7

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko
2010-01-13 18:22:35 +01:00
parent 03d81ef43a
commit 25d9b91d94
5 changed files with 26 additions and 24 deletions

View File

@ -19,8 +19,17 @@
#include "libbb.h"
#include "shell_common.h"
#if IFS_BROKEN
const char defifsvar[] ALIGN1 = "IFS= \t\n";
#else
const char defifs[] ALIGN1 = " \t\n";
#endif
int FAST_FUNC is_well_formed_var_name(const char *s, char terminator)
{
if (!s || !(isalpha(*s) || *s == '_'))
return 0;
do
s++;
while (isalnum(*s) || *s == '_');
return *s == terminator;
}