[PATCH 04/11] FindModuleInSubdir: Stop allocating one more byte than needed

Alan Coopersmith alan.coopersmith at oracle.com
Mon Nov 29 20:57:41 PST 2010


15ac25627e7239629be59 removed the "/" from the sprintf strings,
but failed to remove the extra byte allocated for the '/'.

Signed-off-by: Alan Coopersmith <alan.coopersmith at oracle.com>
---
 hw/xfree86/loader/loadmod.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/hw/xfree86/loader/loadmod.c b/hw/xfree86/loader/loadmod.c
index 6e65227..06d082b 100644
--- a/hw/xfree86/loader/loadmod.c
+++ b/hw/xfree86/loader/loadmod.c
@@ -406,21 +406,21 @@ FindModuleInSubdir(const char *dirpath, const char *module)
  
         snprintf(tmpBuf, PATH_MAX, "lib%s.so", module);
         if (strcmp(direntry->d_name, tmpBuf) == 0) {
-            ret = malloc(strlen(tmpBuf) + strlen(dirpath) + 2);
+            ret = malloc(strlen(tmpBuf) + strlen(dirpath) + 1);
             sprintf(ret, "%s%s", dirpath, tmpBuf);
             break;
         }
 
         snprintf(tmpBuf, PATH_MAX, "%s_drv.so", module);
         if (strcmp(direntry->d_name, tmpBuf) == 0) {
-            ret = malloc(strlen(tmpBuf) + strlen(dirpath) + 2);
+            ret = malloc(strlen(tmpBuf) + strlen(dirpath) + 1);
             sprintf(ret, "%s%s", dirpath, tmpBuf);
             break;
         }
 
         snprintf(tmpBuf, PATH_MAX, "%s.so", module);
         if (strcmp(direntry->d_name, tmpBuf) == 0) {
-            ret = malloc(strlen(tmpBuf) + strlen(dirpath) + 2);
+            ret = malloc(strlen(tmpBuf) + strlen(dirpath) + 1);
             sprintf(ret, "%s%s", dirpath, tmpBuf);
             break;
         }
-- 
1.7.3.2



More information about the xorg-devel mailing list