diff options
author | Denis Dzyubenko <denis.dzyubenko@nokia.com> | 2009-06-08 14:37:48 (GMT) |
---|---|---|
committer | Denis Dzyubenko <denis.dzyubenko@nokia.com> | 2009-06-08 14:54:12 (GMT) |
commit | 9736f27a0a6c3dde4d1493e5129557e05160e546 (patch) | |
tree | a447f7326b1597bb23aad9d9d42bd2a67441ff97 /util | |
parent | 4336436b8113d6a80428d70beda40a89713d04db (diff) | |
download | Qt-9736f27a0a6c3dde4d1493e5129557e05160e546.zip Qt-9736f27a0a6c3dde4d1493e5129557e05160e546.tar.gz Qt-9736f27a0a6c3dde4d1493e5129557e05160e546.tar.bz2 |
Make sure that indexes in the autogenerated locale info do not exceed 16bit range.
Reviewed-By: TrustMe
Diffstat (limited to 'util')
-rwxr-xr-x | util/local_database/qlocalexml2cpp.py | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/util/local_database/qlocalexml2cpp.py b/util/local_database/qlocalexml2cpp.py index a9abe22..af6da33 100755 --- a/util/local_database/qlocalexml2cpp.py +++ b/util/local_database/qlocalexml2cpp.py @@ -237,7 +237,17 @@ class StringData: return self.hash[s] lst = map(lambda x: hex(ord(x)), s) - token = StringDataToken(len(self.data), len(lst)) + index = len(self.data) + if index >= 65535: + print "\n\n\n#error Data index is too big!" + sys.stderr.write ("\n\n\nERROR: index exceeds the uint16 range! index = %d\n" % index) + sys.exit(1) + size = len(lst) + if size >= 65535: + print "\n\n\n#error Data is too big!" + sys.stderr.write ("\n\n\nERROR: data size exceeds the uint16 range! size = %d\n" % size) + sys.exit(1) + token = StringDataToken(index, size) self.hash[s] = token self.data += lst return token |