Procházet zdrojové kódy

pygrass messages: Reducing the size of the string passed to the libgis messaging functions to avoid buffer overflows

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@61998 15284696-431f-4ddb-bdfa-cd5b030d7da7
Soeren Gebbert před 10 roky
rodič
revize
24c88b4aff
1 změnil soubory, kde provedl 21 přidání a 0 odebrání
  1. 21 0
      lib/python/pygrass/messages/__init__.py

+ 21 - 0
lib/python/pygrass/messages/__init__.py

@@ -85,19 +85,40 @@ def message_server(lock, conn):
         elif message_type == "DEBUG":
             level = data[1]
             message = data[2]
+            # libgis limitation
+            if len(message) >= 2000:
+                messgae = message[:1999]
             libgis.G_debug(level, message)
         elif message_type == "VERBOSE":
+            # libgis limitation
+            if len(message) >= 2000:
+                messgae = message[:1999]
             libgis.G_verbose_message(message)
         elif message_type == "INFO":
+            # libgis limitation
+            if len(message) >= 2000:
+                messgae = message[:1999]
             libgis.G_message(message)
         elif message_type == "IMPORTANT":
+            # libgis limitation
+            if len(message) >= 2000:
+                messgae = message[:1999]
             libgis.G_important_message(message)
         elif message_type == "WARNING":
+            # libgis limitation
+            if len(message) >= 2000:
+                messgae = message[:1999]
             libgis.G_warning(message)
         elif message_type == "ERROR":
+            # libgis limitation
+            if len(message) >= 2000:
+                messgae = message[:1999]
             libgis.G_important_message("ERROR: %s"%message)
         # This is for testing only
         elif message_type == "FATAL":
+            # libgis limitation
+            if len(message) >= 2000:
+                messgae = message[:1999]
             libgis.G_fatal_error(message)
 
         lock.release()