Re: tag format and tests

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

 



On Mon, May 30, 2011 at 04:12:30PM +0200, David Glesser wrote:

> This error comes from libgit2 and how it writes the timestamp, see below:
> 
> $ cat tag && echo
> object 5e1c309dae7f45e0f39b1bf3ac3cd9db12e7d689
> type blob
> tag hellotag
> tagger SpongeBob <spongebob.square@xxxxxxxxxxxxxxxx> 0000000000 +0000
> 
> cheeseburger
> $ git mktag < tag
> 7eade44ddd1b9ee24a44e0b2dde2561efea7f7d6
> $ echo 7eade44ddd1b9ee24a44e0b2dde2561efea7f7d6 | git cat-file --batch
> 7eade44ddd1b9ee24a44e0b2dde2561efea7f7d6 tag 154
> object 5e1c309dae7f45e0f39b1bf3ac3cd9db12e7d689
> type blob
> tag hellotag
> tagger SpongeBob <spongebob.square@xxxxxxxxxxxxxxxx> 0000000000 +0000
> 
> cheeseburger
> 
> 
> And now using libgit2 :
> 
> $ git2 mktag < tag
> 49bc784cd2071c97a14841b3eab1181dd1c8fbcd
> $ echo 49bc784cd2071c97a14841b3eab1181dd1c8fbcd | git cat-file --batch
> 49bc784cd2071c97a14841b3eab1181dd1c8fbcd tag 145
> object 5e1c309dae7f45e0f39b1bf3ac3cd9db12e7d689
> type blob
> tag hellotag
> tagger SpongeBob <spongebob.square@xxxxxxxxxxxxxxxx> 0 +0000
> 
> cheeseburger
> 
> Both formats are accepted by git.

Yes, both are valid timestamps. And git itself, when creating a tag via
"git tag", will not write silly leading zeroes. But in this test, we are
using mktag, which is creating a tag object from already-formatted
input. So the question is not whether the date-formatting is a problem,
but rather whether mktag should do be doing _any_ modification or
canonicalization of its input at all.

And I think the answer is "no", because we may be handing gpg-signed
contents to mktag, and any change could invalidate that signature. So
libgit2 is wrong to munge the data.

I imagine your code parses the buffer into a tag object, checks that it
parsed properly, then writes out that object. I think instead you need
to parse the buffer into a tag object, check that it parsed, and then
write the _original_ buffer into a tag object.

-Peff
--
To unsubscribe from this list: 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]