[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

[rhel5-branch] Bump the implementation limit on the number of modules in modLoaded.



After 08a79cbfb36b3a339a2aa34f02eec23b021a70bf we are over the current and
the loader segvs quite reliably.

Resolves: rhbz#716836
---
 loader2/modules.c |    4 +++-
 loader2/modules.h |    4 +++-
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/loader2/modules.c b/loader2/modules.c
index 7f4dce3..cb34dff 100644
--- a/loader2/modules.c
+++ b/loader2/modules.c
@@ -335,6 +335,9 @@ static int loadModule(const char * modName, struct extractedModule * path,
 
     if (!rc) {
         int num = modLoaded->numModules;
+        if (num >= MODULES_MAXLOADED)
+            logMessage(CRITICAL, "The number of loaded modules is over the "
+                       "implementation limit.");
 
         modLoaded->mods[num].name = strdup(modName);
         modLoaded->mods[num].weLoaded = 1;
@@ -390,7 +393,6 @@ static int loadModule(const char * modName, struct extractedModule * path,
         } else {
             newArgs = NULL;
         }
-        
         modLoaded->mods[modLoaded->numModules++].args = newArgs;
     }
 
diff --git a/loader2/modules.h b/loader2/modules.h
index 536a199..a12a235 100644
--- a/loader2/modules.h
+++ b/loader2/modules.h
@@ -4,6 +4,8 @@
 #include "moduleinfo.h"
 #include "moduledeps.h"
 
+#define MODULES_MAXLOADED 256
+
 typedef struct moduleList_s * moduleList;
 
 struct loadedModuleInfo {
@@ -23,7 +25,7 @@ struct extractedModule {
 };
 
 struct moduleList_s {
-    struct loadedModuleInfo mods[100];
+    struct loadedModuleInfo mods[MODULES_MAXLOADED];
     int numModules;
 };
 
-- 
1.7.5.4


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]