X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=refs.c;h=39a3b23804d2da715c564459bf320be23d41c1bf;hb=2c47789d817aaf745a5ce5d5f79619c634cc8566;hp=9e8e8581ba981ca88366b614f1e8749cfe8a6ae5;hpb=2d3cfd77ad5305c132f7b23c192ae6c327443c95;p=git.git diff --git a/refs.c b/refs.c index 9e8e8581b..39a3b2380 100644 --- a/refs.c +++ b/refs.c @@ -925,7 +925,7 @@ int delete_ref(const char *refname, const unsigned char *sha1) i = strlen(lock->lk->filename) - 5; /* .lock */ lock->lk->filename[i] = 0; err = unlink(lock->lk->filename); - if (err) { + if (err && errno != ENOENT) { ret = 1; error("unlink(%s) failed: %s", lock->lk->filename, strerror(errno)); @@ -1412,6 +1412,10 @@ int read_ref_at(const char *ref, unsigned long at_time, int cnt, unsigned char * tz = strtoul(tz_c, NULL, 10); if (get_sha1_hex(logdata, sha1)) die("Log %s is corrupt.", logfile); + if (is_null_sha1(sha1)) { + if (get_sha1_hex(logdata + 41, sha1)) + die("Log %s is corrupt.", logfile); + } if (msg) *msg = ref_msg(logdata, logend); munmap(log_mapped, mapsz);