All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] Fix two issues pointed out by Coverity
@ 2019-05-21 17:50 Johannes Schindelin via GitGitGadget
  2019-05-21 17:50 ` [PATCH 1/2] rebase: replace incorrect logical negation by correct bitwise one Johannes Schindelin via GitGitGadget
  2019-05-21 17:50 ` [PATCH 2/2] bisect--helper: verify HEAD could be parsed before continuing Johannes Schindelin via GitGitGadget
  0 siblings, 2 replies; 4+ messages in thread
From: Johannes Schindelin via GitGitGadget @ 2019-05-21 17:50 UTC (permalink / raw)
  To: git; +Cc: Junio C Hamano

I looked very briefly over the issues pointed out by Coverity, and decided
to pluck these two low-hanging pieces of fruit.

Johannes Schindelin (2):
  rebase: replace incorrect logical negation by correct bitwise one
  bisect--helper: verify HEAD could be parsed before continuing

 builtin/bisect--helper.c | 5 ++++-
 builtin/rebase.c         | 2 +-
 2 files changed, 5 insertions(+), 2 deletions(-)


base-commit: aa25c82427ae70aebf3b8f970f2afd54e9a2a8c6
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-221%2Fdscho%2Faddress-coverity-reports-v1
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-221/dscho/address-coverity-reports-v1
Pull-Request: https://github.com/gitgitgadget/git/pull/221
-- 
gitgitgadget

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH 1/2] rebase: replace incorrect logical negation by correct bitwise one
  2019-05-21 17:50 [PATCH 0/2] Fix two issues pointed out by Coverity Johannes Schindelin via GitGitGadget
@ 2019-05-21 17:50 ` Johannes Schindelin via GitGitGadget
  2019-05-28 18:25   ` Junio C Hamano
  2019-05-21 17:50 ` [PATCH 2/2] bisect--helper: verify HEAD could be parsed before continuing Johannes Schindelin via GitGitGadget
  1 sibling, 1 reply; 4+ messages in thread
From: Johannes Schindelin via GitGitGadget @ 2019-05-21 17:50 UTC (permalink / raw)
  To: git; +Cc: Junio C Hamano, Johannes Schindelin

From: Johannes Schindelin <johannes.schindelin@gmx.de>

In bff014dac7d9 (builtin rebase: support the `verbose` and `diffstat`
options, 2018-09-04), we added a line that wanted to remove the
`REBASE_DIFFSTAT` bit from the flags, but it used an incorrect negation.

Found by Coverity.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
---
 builtin/rebase.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/builtin/rebase.c b/builtin/rebase.c
index ba3a574e40..db6ca9bd7d 100644
--- a/builtin/rebase.c
+++ b/builtin/rebase.c
@@ -1203,7 +1203,7 @@ static int rebase_config(const char *var, const char *value, void *data)
 		if (git_config_bool(var, value))
 			opts->flags |= REBASE_DIFFSTAT;
 		else
-			opts->flags &= !REBASE_DIFFSTAT;
+			opts->flags &= ~REBASE_DIFFSTAT;
 		return 0;
 	}
 
-- 
gitgitgadget


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH 2/2] bisect--helper: verify HEAD could be parsed before continuing
  2019-05-21 17:50 [PATCH 0/2] Fix two issues pointed out by Coverity Johannes Schindelin via GitGitGadget
  2019-05-21 17:50 ` [PATCH 1/2] rebase: replace incorrect logical negation by correct bitwise one Johannes Schindelin via GitGitGadget
@ 2019-05-21 17:50 ` Johannes Schindelin via GitGitGadget
  1 sibling, 0 replies; 4+ messages in thread
From: Johannes Schindelin via GitGitGadget @ 2019-05-21 17:50 UTC (permalink / raw)
  To: git; +Cc: Junio C Hamano, Johannes Schindelin

From: Johannes Schindelin <johannes.schindelin@gmx.de>

In 06f5608c14e6 (bisect--helper: `bisect_start` shell function partially
in C, 2019-01-02), we introduced a call to `get_oid()` and did not check
whether it succeeded before using its output.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
---
 builtin/bisect--helper.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/builtin/bisect--helper.c b/builtin/bisect--helper.c
index e7325fe37f..1fbe156e67 100644
--- a/builtin/bisect--helper.c
+++ b/builtin/bisect--helper.c
@@ -570,7 +570,10 @@ static int bisect_start(struct bisect_terms *terms, int no_checkout,
 	write_file(git_path_bisect_start(), "%s\n", start_head.buf);
 
 	if (no_checkout) {
-		get_oid(start_head.buf, &oid);
+		if (get_oid(start_head.buf, &oid) < 0) {
+			retval = error(_("invalid ref: '%s'"), start_head.buf);
+			goto finish;
+		}
 		if (update_ref(NULL, "BISECT_HEAD", &oid, NULL, 0,
 			       UPDATE_REFS_MSG_ON_ERR)) {
 			retval = -1;
-- 
gitgitgadget

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH 1/2] rebase: replace incorrect logical negation by correct bitwise one
  2019-05-21 17:50 ` [PATCH 1/2] rebase: replace incorrect logical negation by correct bitwise one Johannes Schindelin via GitGitGadget
@ 2019-05-28 18:25   ` Junio C Hamano
  0 siblings, 0 replies; 4+ messages in thread
From: Junio C Hamano @ 2019-05-28 18:25 UTC (permalink / raw)
  To: Johannes Schindelin via GitGitGadget; +Cc: git, Johannes Schindelin

"Johannes Schindelin via GitGitGadget" <gitgitgadget@gmail.com>
writes:

> From: Johannes Schindelin <johannes.schindelin@gmx.de>
>
> In bff014dac7d9 (builtin rebase: support the `verbose` and `diffstat`
> options, 2018-09-04), we added a line that wanted to remove the
> `REBASE_DIFFSTAT` bit from the flags, but it used an incorrect negation.
>
> Found by Coverity.
>
> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
> ---
>  builtin/rebase.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/builtin/rebase.c b/builtin/rebase.c
> index ba3a574e40..db6ca9bd7d 100644
> --- a/builtin/rebase.c
> +++ b/builtin/rebase.c
> @@ -1203,7 +1203,7 @@ static int rebase_config(const char *var, const char *value, void *data)
>  		if (git_config_bool(var, value))
>  			opts->flags |= REBASE_DIFFSTAT;
>  		else
> -			opts->flags &= !REBASE_DIFFSTAT;
> +			opts->flags &= ~REBASE_DIFFSTAT;
>  		return 0;
>  	}

Obviously correct.  Thanks.

At this point in the codeflow, the .flags field is not touched by
parse_options() yet, the configuration codepath only touches that
field for REBASE_DIFFSTAT, and because REBASE_DIFFSTAT is not 0,
"[rebase] stat = no", which would want only the REBASE_DIFFSTAT bit
cleared in the word, can afford to instead assign 0 to the whole
word without causing any damage, which is funny way for this bug to
be hidden for a long time...



^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2019-05-28 18:25 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-05-21 17:50 [PATCH 0/2] Fix two issues pointed out by Coverity Johannes Schindelin via GitGitGadget
2019-05-21 17:50 ` [PATCH 1/2] rebase: replace incorrect logical negation by correct bitwise one Johannes Schindelin via GitGitGadget
2019-05-28 18:25   ` Junio C Hamano
2019-05-21 17:50 ` [PATCH 2/2] bisect--helper: verify HEAD could be parsed before continuing Johannes Schindelin via GitGitGadget

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.