diff options
-rw-r--r-- | src/libstore/globals.cc | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/libstore/globals.cc b/src/libstore/globals.cc index bfb40a07a237..c75ebdd0e36b 100644 --- a/src/libstore/globals.cc +++ b/src/libstore/globals.cc @@ -188,6 +188,10 @@ string Settings::pack() { string s; foreach (SettingsMap::iterator, i, settings) { + if (i->first.find('\n') != string::npos || + i->first.find('=') != string::npos || + i->second.find('\n') != string::npos) + throw Error("illegal option name/value"); s += i->first; s += '='; s += i->second; s += '\n'; } return s; |