svn commit: r297526 - head/sys/geom/sched

Kevin Lo kevlo at FreeBSD.org
Sun Apr 3 16:59:49 UTC 2016


On Sun, Apr 03, 2016 at 04:25:51PM +0000, Pedro F. Giffuni wrote:
> 
> Author: pfg
> Date: Sun Apr  3 16:25:51 2016
> New Revision: 297526
> URL: https://svnweb.freebsd.org/changeset/base/297526
> 
> Log:
>   g_sched_destroy(): prevent return of uninitialized scalar variable.
>   
>   For the !gsp case there some chance of returning an uninitialized
>   return value. Prevent that from happening by initializing the
>   error value.

Hmm, wouldn't it be better to initialize 'error' before use?

Index: sys/geom/sched/g_sched.c
===================================================================
--- sys/geom/sched/g_sched.c	(revision 297527)
+++ sys/geom/sched/g_sched.c	(working copy)
@@ -1236,7 +1236,7 @@ g_sched_destroy(struct g_geom *gp, boolean_t force
 	struct g_provider *pp, *oldpp = NULL;
 	struct g_sched_softc *sc;
 	struct g_gsched *gsp;
-	int error;
+	int error = 0;
 
 	g_topology_assert();
 	sc = gp->softc;
@@ -1316,8 +1316,7 @@ g_sched_destroy(struct g_geom *gp, boolean_t force
 		gsp->gs_fini(sc->sc_data);
 		g_gsched_unref(gsp);
 		sc->sc_gsched = NULL;
-	} else
-		error = 0;
+	}
 
 	if ((sc->sc_flags & G_SCHED_PROXYING) && oldpp) {
 		error = g_destroy_proxy(gp, oldpp);
>   
>   CID:	1006421
> 
> Modified:
>   head/sys/geom/sched/g_sched.c
> 
> Modified: head/sys/geom/sched/g_sched.c
> ==============================================================================
> --- head/sys/geom/sched/g_sched.c	Sun Apr  3 14:40:54 2016	(r297525)
> +++ head/sys/geom/sched/g_sched.c	Sun Apr  3 16:25:51 2016	(r297526)
> @@ -1316,7 +1316,8 @@ g_sched_destroy(struct g_geom *gp, boole
>  		gsp->gs_fini(sc->sc_data);
>  		g_gsched_unref(gsp);
>  		sc->sc_gsched = NULL;
> -	}
> +	} else
> +		error = 0;
>  
>  	if ((sc->sc_flags & G_SCHED_PROXYING) && oldpp) {
>  		error = g_destroy_proxy(gp, oldpp);
> 
> 


More information about the svn-src-head mailing list