Permalink
Browse files

Validate names passed to 'export'.

  • Loading branch information...
Andy Chu
Andy Chu committed Dec 19, 2017
1 parent ee81933 commit 07b06484ff96abad583e751e7b6c23ebc362df7e
Showing with 5 additions and 2 deletions.
  1. +5 −2 core/builtin.py
View
@@ -574,12 +574,11 @@ def Export(argv, mem):
arg, i = EXPORT_SPEC.Parse(argv)
if arg.n:
for name in argv[i:]:
# TODO: Validate variable name
m = lex.VAR_NAME_RE.match(name)
if not m:
raise args.UsageError('export: Invalid variable name %r' % name)
# NOTE: bash does not care if it wasn't found
# NOTE: bash doesn't care if it wasn't found.
_ = mem.ClearFlag(name, var_flags_e.Exported, scope_e.Dynamic)
else:
for arg in argv[i:]:
@@ -591,6 +590,10 @@ def Export(argv, mem):
name, s = parts
val = runtime.Str(s)
m = lex.VAR_NAME_RE.match(name)
if not m:
raise args.UsageError('export: Invalid variable name %r' % name)
#log('%s %s', name, val)
mem.SetVar(
runtime.LhsName(name), val, (var_flags_e.Exported,), scope_e.Dynamic)

0 comments on commit 07b0648

Please sign in to comment.