Re: parsecvs and unnamed branches

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

 



On Fri, 2006-06-16 at 23:31 -0400, Jon Smirl wrote:

> Parsecvs was compiled '-O2 -g' why didn't it decode the addresses to symbols?

Sorry, I was too quick to put blame on you.  Maybe glibc can only list
its own symbols.

I could reproduce the problem trivially with a single file, and here's
what Valgrind says:

==11154== Invalid free() / delete / delete[]
==11154==    at 0x4905423: free (vg_replace_malloc.c:233)
==11154==    by 0x40C136: git_pack_directory (git.c:620)
==11154==    by 0x40C1B4: git_rev_list_pack (git.c:639)
==11154==    by 0x4067DA: main (parsecvs.c:785)


git_pack_directory() tries to free() the result of
git_system_to_string(), which is in turn a result of atom().  My
understanding is that atoms should not be freed.  They are not freed in
other cases.

Patch:

diff --git a/README b/README
diff --git a/git.c b/git.c
index 33b29c7..7312568 100644
--- a/git.c
+++ b/git.c
@@ -617,7 +617,6 @@ git_pack_directory (void)
 	}
 	free (objects_dir);
 	pack_dir = git_format_command ("%s/objects/pack", git_dir);
-        free (git_dir);
 	if (!pack_dir)
 	    return NULL;
 	if (access (pack_dir, F_OK) == -1 &&

-- 
Regards,
Pavel Roskin

-
: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]