diff options
| author | Lukas Fleischer <cgit@cryptocrack.de> | 2013-08-20 18:56:12 +0200 | 
|---|---|---|
| committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2013-08-20 19:55:20 +0200 | 
| commit | 01db08372965b082239e7946255ac43f42d3e37d (patch) | |
| tree | 2ae36a481ff08a5b9d715b2adbddb9dc931d1a47 | |
| parent | 445f6ae8e3ef19b6ca70e741e934778bc4a05555 (diff) | |
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>
| -rw-r--r-- | ui-diff.c | 23 | 
1 files changed, 9 insertions, 14 deletions
| @@ -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) +	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 +	} 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)); -			return; -		}  		commit2 = lookup_commit_reference(old_rev_sha1);  		if (!commit2 || parse_commit(commit2)) {  			cgit_print_error("Bad commit: %s", sha1_to_hex(old_rev_sha1)); | 
