Explorar o código

[BRIDGE]: Lost call to br_fdb_fini() in br_init() error path

In case the br_netfilter_init() (or any subsequent call) 
fails, the br_fdb_fini() must be called to free the allocated
in br_fdb_init() br_fdb_cache kmem cache.

Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Pavel Emelyanov %!s(int64=17) %!d(string=hai) anos
pai
achega
17efdd4575
Modificáronse 1 ficheiros con 3 adicións e 1 borrados
  1. 3 1
      net/bridge/br.c

+ 3 - 1
net/bridge/br.c

@@ -39,7 +39,7 @@ static int __init br_init(void)
 
 
 	err = br_fdb_init();
 	err = br_fdb_init();
 	if (err)
 	if (err)
-		goto err_out1;
+		goto err_out;
 
 
 	err = br_netfilter_init();
 	err = br_netfilter_init();
 	if (err)
 	if (err)
@@ -65,6 +65,8 @@ err_out3:
 err_out2:
 err_out2:
 	br_netfilter_fini();
 	br_netfilter_fini();
 err_out1:
 err_out1:
+	br_fdb_fini();
+err_out:
 	llc_sap_put(br_stp_sap);
 	llc_sap_put(br_stp_sap);
 	return err;
 	return err;
 }
 }