[PATCH] Fix buggy ref recording
- From
Petr Baudis <pasky@suse.cz>
- Date
- Sep 22, 2006, 23:08 UTC
- Message-ID
- <20060922230845.GB8259@pasky.or.cz>
- In-Reply-To
- <20060919205554.GA8259@pasky.or.cz>
Dear diary, on Tue, Sep 19, 2006 at 10:55:54PM CEST, I got a letter where Petr Baudis <pasky@suse.cz> said that...
Show 10 quoted lines
> Dear diary, on Thu, Sep 14, 2006 at 07:14:47PM CEST, I got a letter > where Linus Torvalds <torvalds@osdl.org> said that... > > + ref_file = git_path(ref); > > You slip... > You fall... > *BLAMMMM!!!* > > Cloning a repository with '%s' tag over HTTP now dumps core nicely, and > I guess this kind of bugs tends to be exploitable.
And since just reporting it did not magically result in a fix... ;-)
-8<-
There is a format string vulnerability introduced with the packed refs file format.
Signed-off-by: Petr Baudis <pasky@suse.cz> ---
refs.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/refs.c b/refs.c index 40f16af..5fdf9c4 100644 --- a/refs.c +++ b/refs.c @@ -472,7 +472,7 @@ static struct ref_lock *lock_ref_sha1_ba lock->ref_name = xstrdup(ref); lock->log_file = xstrdup(git_path("logs/%s", ref)); - ref_file = git_path(ref); + ref_file = git_path("%s", ref); lock->force_write = lstat(ref_file, &st) && errno == ENOENT; if (safe_create_leading_directories(ref_file))
--
Petr "Pasky" Baudis
Stuff: http://pasky.or.cz/
#!/bin/perl -sp0777i<X+d*lMLa^*lN%0]dsXx++lMlN/dsM0<j]dsj
$/=unpack('H*',$_);$_=`echo 16dio\U$k"SK$/SM$n\EsN0p[lN*1
lK[d2%Sa2/d0$^Ixp"|dc`;s/\W//g;$_=pack('H*',/((..)*)$/)