summaryrefslogtreecommitdiffstats
path: root/util/local_database
diff options
context:
space:
mode:
authorDenis Dzyubenko <denis.dzyubenko@nokia.com>2009-06-08 14:37:48 (GMT)
committerDenis Dzyubenko <denis.dzyubenko@nokia.com>2009-06-08 14:54:12 (GMT)
commit9736f27a0a6c3dde4d1493e5129557e05160e546 (patch)
treea447f7326b1597bb23aad9d9d42bd2a67441ff97 /util/local_database
parent4336436b8113d6a80428d70beda40a89713d04db (diff)
downloadQt-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/local_database')
-rwxr-xr-xutil/local_database/qlocalexml2cpp.py12
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