Branch: master

f685dc8a 2014-11-20 01:41:23 Timothy Pearson
Fix improperly sized string buffers in compton pid code
M twin/compton-tde/compton.c
M twin/workspace.cpp
diff --git a/twin/compton-tde/compton.c b/twin/compton-tde/compton.c
index 3f9b65e..36af91f 100644
--- a/twin/compton-tde/compton.c
+++ b/twin/compton-tde/compton.c
@@ -110,7 +110,7 @@
     char uidstr[sizeof(uid_t)*8+1];
     sprintf(uidstr, "%d", getuid());
     int n = strlen(P_tmpdir)+strlen(uidstr)+strlen(pidfile)+3;
-    filename = (char*)malloc(n*sizeof(char));
+    filename = (char*)malloc(n*sizeof(char)+1);
     memset(filename,0,n);
     strcat(filename, P_tmpdir);
     strcat(filename, "/.");
@@ -141,7 +141,7 @@
     char uidstr[sizeof(uid_t)*8+1];
     sprintf(uidstr, "%d", getuid());
     int n = strlen(P_tmpdir)+strlen(uidstr)+strlen(pidfile)+3;
-    filename = (char*)malloc(n*sizeof(char));
+    filename = (char*)malloc(n*sizeof(char)+1);
     memset(filename,0,n);
     strcat(filename, P_tmpdir);
     strcat(filename, "/.");
diff --git a/twin/workspace.cpp b/twin/workspace.cpp
index b6b1e2f..14ab22e 100644
--- a/twin/workspace.cpp
+++ b/twin/workspace.cpp
@@ -241,7 +241,7 @@
         char uidstr[sizeof(uid_t)*8+1];
         sprintf(uidstr, "%d", getuid());
         int n = strlen(P_tmpdir)+strlen(uidstr)+strlen(pidfile)+3;
-        filename = (char*)malloc(n*sizeof(char));
+        filename = (char*)malloc(n*sizeof(char)+1);
         memset(filename,0,n);
         strcat(filename, P_tmpdir);
         strcat(filename, "/.");
@@ -1090,7 +1090,7 @@
         char uidstr[sizeof(uid_t)*8+1];
         sprintf(uidstr, "%d", getuid());
         int n = strlen(P_tmpdir)+strlen(uidstr)+strlen(pidfile)+3;
-        filename = (char*)malloc(n*sizeof(char));
+        filename = (char*)malloc(n*sizeof(char)+1);
         memset(filename,0,n);
         strcat(filename, P_tmpdir);
         strcat(filename, "/.");