ui-diff: Check the return value of get_sha1()
Sync with what we do everywhere else and check the return value of get_sha1() instead of calling sha1_object_info() to validate the object. Note that we later call lookup_commit_reference(), which checks that both SHA1 values refer to commits, anyway. Signed-off-by: Lukas Fleischer <cgit@cryptocrack.de>
This commit is contained in:
orang tua
445f6ae8e3
melakukan
01db083729
27
ui-diff.c
27
ui-diff.c
@ -360,15 +360,11 @@ void cgit_print_diff_ctrls()
|
||||
void cgit_print_diff(const char *new_rev, const char *old_rev,
|
||||
const char *prefix, int show_ctrls, int raw)
|
||||
{
|
||||
enum object_type type;
|
||||
unsigned long size;
|
||||
struct commit *commit, *commit2;
|
||||
|
||||
if (!new_rev)
|
||||
new_rev = ctx.qry.head;
|
||||
get_sha1(new_rev, new_rev_sha1);
|
||||
type = sha1_object_info(new_rev_sha1, &size);
|
||||
if (type == OBJ_BAD) {
|
||||
if (get_sha1(new_rev, new_rev_sha1)) {
|
||||
cgit_print_error("Bad object name: %s", new_rev);
|
||||
return;
|
||||
}
|
||||
@ -378,19 +374,18 @@ void cgit_print_diff(const char *new_rev, const char *old_rev,
|
||||
return;
|
||||
}
|
||||
|
||||
if (old_rev)
|
||||
get_sha1(old_rev, old_rev_sha1);
|
||||
else if (commit->parents && commit->parents->item)
|
||||
hashcpy(old_rev_sha1, commit->parents->item->object.sha1);
|
||||
else
|
||||
hashclr(old_rev_sha1);
|
||||
|
||||
if (!is_null_sha1(old_rev_sha1)) {
|
||||
type = sha1_object_info(old_rev_sha1, &size);
|
||||
if (type == OBJ_BAD) {
|
||||
cgit_print_error("Bad object name: %s", sha1_to_hex(old_rev_sha1));
|
||||
if (old_rev) {
|
||||
if (get_sha1(old_rev, old_rev_sha1)) {
|
||||
cgit_print_error("Bad object name: %s", old_rev);
|
||||
return;
|
||||
}
|
||||
} else if (commit->parents && commit->parents->item) {
|
||||
hashcpy(old_rev_sha1, commit->parents->item->object.sha1);
|
||||
} else {
|
||||
hashclr(old_rev_sha1);
|
||||
}
|
||||
|
||||
if (!is_null_sha1(old_rev_sha1)) {
|
||||
commit2 = lookup_commit_reference(old_rev_sha1);
|
||||
if (!commit2 || parse_commit(commit2)) {
|
||||
cgit_print_error("Bad commit: %s", sha1_to_hex(old_rev_sha1));
|
||||
|
Memuat…
Reference in New Issue
Block a user