From 3c6784e95caa334caa98f6f61b0d08385fa21e0b Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Fri, 19 Apr 2013 16:21:42 +0200 Subject: [PATCH] BPackageInfo::Parser: Be a bit stricter wrt. names after all Also disallow the operator characters in names. --- src/kits/package/PackageInfo.cpp | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/src/kits/package/PackageInfo.cpp b/src/kits/package/PackageInfo.cpp index 89e645f26e..f61b68f121 100644 --- a/src/kits/package/PackageInfo.cpp +++ b/src/kits/package/PackageInfo.cpp @@ -942,11 +942,23 @@ BPackageInfo::Parser::_IsValidResolvableName(const char* string, int32* _errorPos) { for (const char* c = string; *c != '\0'; c++) { - if (*c == '-' || *c == '/' || isspace(*c)) { - if (_errorPos != NULL) - *_errorPos = c - string; - return false; + switch (*c) { + case '-': + case '/': + case '<': + case '>': + case '=': + case '!': + break; + default: + if (!isspace(*c)) + continue; + break; } + + if (_errorPos != NULL) + *_errorPos = c - string; + return false; } return true; }