{"thread":{"id":"340","subject":"[PATCH] read_tree_recursive(): Fix leaks","startedAt":"2005-04-26T23:00:01Z","lastAt":"2005-04-26T23:00:01Z","messageCount":1,"participants":["Jonas Fonseca"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"1823","messageId":"20050426230001.GB28560@diku.dk","threadId":"340","inReplyTo":null,"subject":"[PATCH] read_tree_recursive(): Fix leaks","fromName":"Jonas Fonseca","fromEmail":"fonseca@diku.dk","sentAt":"2005-04-26T23:00:01Z","receivedAt":"2005-04-26T23:00:01Z","isPatch":true,"sender":{"key":"fonseca@diku.dk","avatar":"https://gravatar.com/avatar/f82f3ad698717c51873b020c750a92438c820a24056dc39fe4d07baa10a92264?d=mp&s=160"},"body":"Fix two potential leaks.\n\nSigned-off-by: Jonas Fonseca <fonseca@diku.dk>\n\n---\ncommit 74f5ad9d566408b4d352570ccde67ece0f2650a7\ntree 7a6c485bceed70459c1855ab3c4d8ddfdeeb65d1\nparent a738ed98e4557877f8bcd3b992aa55579b22b9d1\nauthor Jonas Fonseca <fonseca@diku.dk> 1114555146 +0200\ncommitter Jonas Fonseca <fonseca@diku.dk> 1114555146 +0200\n\n tree.c |    7 +++++--\n 1 files changed, 5 insertions(+), 2 deletions(-)\n\nIndex: tree.c\n===================================================================\n--- 2447d3a399200c8f736344822969f88f675612dd/tree.c  (mode:100644 sha1:15a16d560619aee80e41bf816dd8474a3253b1a5)\n+++ 7a6c485bceed70459c1855ab3c4d8ddfdeeb65d1/tree.c  (mode:100644 sha1:7c55bb9bfa1565dc9df5cab31207a02004d7fe10)\n@@ -39,14 +39,17 @@\n \t\tif (S_ISDIR(mode)) {\n \t\t\tint retval;\n \t\t\tint pathlen = strlen(path);\n-\t\t\tchar *newbase = xmalloc(baselen + 1 + pathlen);\n+\t\t\tchar *newbase;\n \t\t\tvoid *eltbuf;\n \t\t\tchar elttype[20];\n \t\t\tunsigned long eltsize;\n \n \t\t\teltbuf = read_sha1_file(sha1, elttype, &eltsize);\n-\t\t\tif (!eltbuf || strcmp(elttype, \"tree\"))\n+\t\t\tif (!eltbuf || strcmp(elttype, \"tree\")) {\n+\t\t\t\tif (eltbuf) free(eltbuf);\n \t\t\t\treturn -1;\n+\t\t\t}\n+\t\t\tnewbase = xmalloc(baselen + 1 + pathlen);\n \t\t\tmemcpy(newbase, base, baselen);\n \t\t\tmemcpy(newbase + baselen, path, pathlen);\n \t\t\tnewbase[baselen + pathlen] = '/';\n\n\n-- \nJonas Fonseca\n"}]}