Andrew's git
/
gitweb.git
/ diff
summary
|
log
|
commit
| diff |
tree
commit
grep
author
committer
pickaxe
?
re
[PATCH] Fix a crash when doing rev-tree
author
Petr Baudis
<pasky@ucw.cz>
Tue, 12 Apr 2005 21:37:42 +0000
(14:37 -0700)
committer
Linus Torvalds
<torvalds@ppc970.osdl.org>
Tue, 12 Apr 2005 21:37:42 +0000
(14:37 -0700)
In parse_commit(), free(buffer) is fed a bogus pointer.
Signed-off-by: Petr Baudis <pasky@ucw.cz>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
rev-tree.c
patch
|
blob
|
history
raw
|
patch
|
inline
| side by side (parent:
29d76d4
)
diff --git
a/rev-tree.c
b/rev-tree.c
index 82bf5aaf9e3f986905c95a5a08a13ed71449ebba..f2414b20fea128ff0fe13497b65587badcadf2b1 100644
(file)
--- a/
rev-tree.c
+++ b/
rev-tree.c
@@
-152,22
+152,22
@@
static int parse_commit(unsigned char *sha1)
struct revision *rev = lookup_rev(sha1);
if (!(rev->flags & SEEN)) {
struct revision *rev = lookup_rev(sha1);
if (!(rev->flags & SEEN)) {
- void *buffer;
+ void *buffer
, *bufptr
;
unsigned long size;
char type[20];
unsigned char parent[20];
rev->flags |= SEEN;
unsigned long size;
char type[20];
unsigned char parent[20];
rev->flags |= SEEN;
- buffer = read_sha1_file(sha1, type, &size);
+ buffer =
bufptr =
read_sha1_file(sha1, type, &size);
if (!buffer || strcmp(type, "commit"))
return -1;
if (!buffer || strcmp(type, "commit"))
return -1;
- buf
fe
r += 46; /* "tree " + "hex sha1" + "\n" */
- while (!memcmp(buf
fer, "parent ", 7) && !get_sha1_hex(buffe
r+7, parent)) {
+ buf
pt
r += 46; /* "tree " + "hex sha1" + "\n" */
+ while (!memcmp(buf
ptr, "parent ", 7) && !get_sha1_hex(bufpt
r+7, parent)) {
add_relationship(rev, parent);
parse_commit(parent);
add_relationship(rev, parent);
parse_commit(parent);
- buf
fe
r += 48; /* "parent " + "hex sha1" + "\n" */
+ buf
pt
r += 48; /* "parent " + "hex sha1" + "\n" */
}
}
- rev->date = parse_commit_date(buf
fe
r);
+ rev->date = parse_commit_date(buf
pt
r);
free(buffer);
}
return 0;
free(buffer);
}
return 0;