threads / patch / 29418

patchfix git-gui crash due to uninitialized variable

Subject: [PATCH] fix git-gui crash due to uninitialized variable

## tl;dr

3 messages between Jan 21, 2012 and Jan 22, 2012. Diffs are folded; open one to read it.

replies: 2people: 3as markdown or json

Clemens Buchacher· Jan 21, 2012, 17:57 UTC · lore

Recently, a clone initiated via git gui on Windows crashed on me due to an "unknown variable cdone". It turns out that there is a code path where this variable is used uninitialized.

Signed-off-by: Clemens Buchacher <drizzd@aon.at>
---

Looking at the output of display(), it's not clear to me now the function below could ever be called with total=0. But I can't delve into it more deeply right now, and this seems like an obvious fix.

 git-gui/lib/status_bar.tcl |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)
Show changes to git-gui/lib/status_bar.tcl +1 −0
diff --git a/git-gui/lib/status_bar.tcl b/git-gui/lib/status_bar.tcl
index 95cb449..02111a1 100644
--- a/git-gui/lib/status_bar.tcl
+++ b/git-gui/lib/status_bar.tcl
@@ -77,6 +77,7 @@ method start {msg uds} {
 
 method update {have total} {
 	set pdone 0
+	set cdone 0
 	if {$total > 0} {
 		set pdone [expr {100 * $have / $total}]
 		set cdone [expr {[winfo width $w_c] * $have / $total}]
-- 
1.7.8
Junio C Hamano· Jan 21, 2012, 22:13 UTC · re: Clemens Buchacher · lore

Re: [PATCH] fix git-gui crash due to uninitialized variable

Clemens Buchacher <drizzd@aon.at> writes:
Show 6 quoted lines
> Recently, a clone initiated via git gui on Windows crashed on me due to
> an "unknown variable cdone". It turns out that there is a code path
> where this variable is used uninitialized.
>
> Signed-off-by: Clemens Buchacher <drizzd@aon.at>
> ---

Thanks, but Clemens, please don't Cc: me git-gui patches, which I won't take directly.

Pinging Pat.
Show 19 quoted lines
> Looking at the output of display(), it's not clear to me now the
> function below could ever be called with total=0. But I can't delve into
> it more deeply right now, and this seems like an obvious fix.
>
>  git-gui/lib/status_bar.tcl |    1 +
>  1 files changed, 1 insertions(+), 0 deletions(-)
>
> diff --git a/git-gui/lib/status_bar.tcl b/git-gui/lib/status_bar.tcl
> index 95cb449..02111a1 100644
> --- a/git-gui/lib/status_bar.tcl
> +++ b/git-gui/lib/status_bar.tcl
> @@ -77,6 +77,7 @@ method start {msg uds} {
>  
>  method update {have total} {
>  	set pdone 0
> +	set cdone 0
>  	if {$total > 0} {
>  		set pdone [expr {100 * $have / $total}]
>  		set cdone [expr {[winfo width $w_c] * $have / $total}]
Pat Thoyts· Jan 22, 2012, 23:18 UTC · re: Clemens Buchacher · lore

Re: [PATCH] fix git-gui crash due to uninitialized variable

Clemens Buchacher <drizzd@aon.at> writes:
Show 26 quoted lines
>Recently, a clone initiated via git gui on Windows crashed on me due to
>an "unknown variable cdone". It turns out that there is a code path
>where this variable is used uninitialized.
>
>Signed-off-by: Clemens Buchacher <drizzd@aon.at>
>---
>
>Looking at the output of display(), it's not clear to me now the
>function below could ever be called with total=0. But I can't delve into
>it more deeply right now, and this seems like an obvious fix.
>
> git-gui/lib/status_bar.tcl |    1 +
> 1 files changed, 1 insertions(+), 0 deletions(-)
>
>diff --git a/git-gui/lib/status_bar.tcl b/git-gui/lib/status_bar.tcl
>index 95cb449..02111a1 100644
>--- a/git-gui/lib/status_bar.tcl
>+++ b/git-gui/lib/status_bar.tcl
>@@ -77,6 +77,7 @@ method start {msg uds} {
> 
> method update {have total} {
> 	set pdone 0
>+	set cdone 0
> 	if {$total > 0} {
> 		set pdone [expr {100 * $have / $total}]
> 		set cdone [expr {[winfo width $w_c] * $have / $total}]

It might be nice to know what kind of conditions triggered this for you, but the patch is fine. Thanks, applied.

-- 
Pat Thoyts                            http://www.patthoyts.tk/
PGP fingerprint 2C 6E 98 07 2C 59 C8 97  10 CE 11 E6 04 E0 B9 DD

← back to recent threads