Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751374AbcCKJTq (ORCPT ); Fri, 11 Mar 2016 04:19:46 -0500 Received: from userp1040.oracle.com ([156.151.31.81]:33685 "EHLO userp1040.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750999AbcCKJTi (ORCPT ); Fri, 11 Mar 2016 04:19:38 -0500 Date: Fri, 11 Mar 2016 12:19:19 +0300 From: Dan Carpenter To: xlpang@redhat.com Cc: Andrew Morton , Vivek Goyal , Dave Young , Ingo Molnar , Toshi Kani , Mimi Zohar , Minfei Huang , linux-kernel@vger.kernel.org, kernel-janitors@vger.kernel.org Subject: Re: [patch] kexec: potetially using uninitialized variable Message-ID: <20160311091919.GD5273@mwanda> References: <20160311080747.GA31887@mwanda> <56E2875B.8010909@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <56E2875B.8010909@redhat.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-Source-IP: aserv0021.oracle.com [141.146.126.233] Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1297 Lines: 42 On Fri, Mar 11, 2016 at 04:52:43PM +0800, Xunlei Pang wrote: > Hi Dan, > > On 2016/03/11 at 16:07, Dan Carpenter wrote: > > At the end of the function we check if "ret" has a negative error code, > > but it seems possible that it is uninitialized. > > > > Fixes: 12db5562e035 ('kexec: load and relocate purgatory at kernel load time') > > Signed-off-by: Dan Carpenter > > > > diff --git a/kernel/kexec_file.c b/kernel/kexec_file.c > > index 503bc2d..63d1af3 100644 > > --- a/kernel/kexec_file.c > > +++ b/kernel/kexec_file.c > > @@ -795,7 +795,7 @@ out: > > > > static int kexec_apply_relocations(struct kimage *image) > > { > > - int i, ret; > > + int i, ret = 0; > > struct purgatory_info *pi = &image->purgatory_info; > > Elf_Shdr *sechdrs = pi->sechdrs; > > > > Look further, there is a condition at the beginning of the for loop: > > > if (sechdrs[i].sh_type != SHT_RELA && > sechdrs[i].sh_type != SHT_REL) > continue; > > So, I think that's ok, but I don't konw if GCC is smart enough not to throw warnings. Ah, right... This wasn't a GCC warning. GCC misses a lot of uninitialized variable bugs so I'm doing this with Smatch. Anyway, I'll patch this up in Smatch to not warn about this. regards, dan carpenter