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

3 messages from 2012-01-21 to 2012-01-22. Participants: Clemens Buchacher, Junio C Hamano, Pat Thoyts.
Thread: https://gitlist.dev/t/29418

## Clemens Buchacher, 2012-01-21 17:57

Subject: [PATCH] fix git-gui crash due to uninitialized variable
Message-ID: <20120121175724.GA7319@ecki>
URL: https://gitlist.dev/e/20120121175724.GA7319%40ecki

```
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}]
-- 
1.7.8

```

## Junio C Hamano, 2012-01-21 22:13

Subject: Re: [PATCH] fix git-gui crash due to uninitialized variable
Message-ID: <7v1uqsbt66.fsf@alter.siamese.dyndns.org>
URL: https://gitlist.dev/e/7v1uqsbt66.fsf%40alter.siamese.dyndns.org
In-Reply-To: <20120121175724.GA7319@ecki>

```
Clemens Buchacher <drizzd@aon.at> writes:

> 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.

> 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, 2012-01-22 23:18

Subject: Re: [PATCH] fix git-gui crash due to uninitialized variable
Message-ID: <87bopvz5p9.fsf@fox.patthoyts.tk>
URL: https://gitlist.dev/e/87bopvz5p9.fsf%40fox.patthoyts.tk
In-Reply-To: <20120121175724.GA7319@ecki>

```
Clemens Buchacher <drizzd@aon.at> writes:

>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

```
