Fix macloader buffer overflow
authorJavier Ferrer <javi.f.o@gmail.com>
Mon, 20 May 2013 23:09:24 +0000 (01:09 +0200)
committerJavier Ferrer <javi.f.o@gmail.com>
Mon, 20 May 2013 23:09:24 +0000 (01:09 +0200)
Fixes this log entries.

I/macloader( 1915): Writing murata to /data/.cid.info
D/macloader( 1915): Setting permissions on /data/.cid.info
F/libc    ( 1915): *** vsprintf buffer overflow detected ***
F/libc    ( 1915): Fatal signal 11 (SIGSEGV) at 0xdeadbaad (code=1), thread 1915 (macloader)

Change-Id: I1ccb257bada18030de76a2be40477172993ca2a0

macloader/macloader.cpp

index 62397cd6f902d18af5187191a37460bc3043a684..b316c606b260f8b5fdea21020bee03465b11ec75 100644 (file)
@@ -117,8 +117,8 @@ int main() {
         amode = S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH;
         ret = chmod(CID_PATH, amode);
 
-        char* chown_cmd = (char*) malloc(strlen("chown system ") + strlen(CID_PATH));
-        char* chgrp_cmd = (char*) malloc(strlen("chgrp system ") + strlen(CID_PATH));
+        char* chown_cmd = (char*) malloc(strlen("chown system ") + strlen(CID_PATH) + 1);
+        char* chgrp_cmd = (char*) malloc(strlen("chgrp system ") + strlen(CID_PATH) + 1);
         sprintf(chown_cmd, "chown system %s", CID_PATH);
         sprintf(chgrp_cmd, "chgrp system %s", CID_PATH);
         system(chown_cmd);