From 788a38fd32389ba73d5db2b38920768f4af24fb5 Mon Sep 17 00:00:00 2001 From: Stephan Bergmann Date: Tue, 28 May 2013 12:58:39 +0200 Subject: Better verification of bad idxdict input ...see dictionaries comits df423c53829faa96f46acd71887fd0f8697c49e9 "fix Lithuanian thesaurus" and 9b6407dadc64e10e7117d8551917b46105ecc6c8 "Fix more thesauri." Change-Id: I6ddc41fce4e3f68d80d05af3320c835b98908fcb --- l10ntools/source/idxdict/idxdict.cxx | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'l10ntools') diff --git a/l10ntools/source/idxdict/idxdict.cxx b/l10ntools/source/idxdict/idxdict.cxx index 67811c08ff5a..035296a233d7 100644 --- a/l10ntools/source/idxdict/idxdict.cxx +++ b/l10ntools/source/idxdict/idxdict.cxx @@ -7,6 +7,7 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ +#include #include #include #include @@ -55,7 +56,16 @@ int main(int argc, char *argv[]) exit(99); } currentOffset += strlen(inputBuffer)+1; - int entryCount(strtol(inputBuffer, NULL, 10)); + char * endptr; + errno = 0; + int entryCount(strtol(inputBuffer, &endptr, 10)); + if (errno != 0 || endptr == inputBuffer || *endptr != '\0') + { + cerr + << "Unable to read count from \"" << inputBuffer + << "\" input.\n"; + exit(99); + } for (int i(0); i < entryCount; ++i) { cin.getline(inputBuffer, MAXLINE); -- cgit