resolve_ref(): emit warnings for improperly-formatted references

While resolving references, if a reference is found that is in an
unrecognized format, emit a warning (and then fail, as before).
Wouldn't *you* want to know?

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Michael Haggerty 2011-09-15 23:10:40 +02:00 коммит произвёл Junio C Hamano
Родитель 8384d78886
Коммит 629cd3ac6d
1 изменённых файлов: 4 добавлений и 2 удалений

6
refs.c
Просмотреть файл

@ -500,6 +500,7 @@ const char *resolve_ref(const char *ref, unsigned char *sha1, int reading, int *
ssize_t len;
char buffer[256];
static char ref_buffer[256];
char path[PATH_MAX];
if (flag)
*flag = 0;
@ -508,7 +509,6 @@ const char *resolve_ref(const char *ref, unsigned char *sha1, int reading, int *
return NULL;
for (;;) {
char path[PATH_MAX];
struct stat st;
char *buf;
int fd;
@ -593,8 +593,10 @@ const char *resolve_ref(const char *ref, unsigned char *sha1, int reading, int *
if (flag)
*flag |= REF_ISSYMREF;
}
if (get_sha1_hex(buffer, sha1))
if (get_sha1_hex(buffer, sha1)) {
warning("reference in %s is formatted incorrectly", path);
return NULL;
}
return ref;
}