linux-arch.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Johan Hovold <johan@kernel.org>
To: Steven Rostedt <rostedt@goodmis.org>
Cc: Johan Hovold <johan@kernel.org>,
	Viresh Kumar <viresh.kumar@linaro.org>,
	Bernd Petrovitsch <bernd@petrovitsch.priv.at>,
	"Du, Changbin" <changbin.du@intel.com>,
	gregkh@linuxfoundation.org, alex.elder@linaro.org,
	kbuild test robot <lkp@intel.com>,
	linux-arch@vger.kernel.org, michal.lkml@markovi.net,
	linux-kernel@vger.kernel.org, arnd@arndb.de,
	yamada.masahiro@socionext.com, lgirdwood@gmail.com,
	broonie@kernel.org, rdunlap@infradead.org, x86@kernel.org,
	linux@armlinux.org.uk, linux-sparse@vger.kernel.org,
	mingo@redhat.com, kbuild-all@01.org, akpm@linux-foundation.org,
	changbin.du@gmail.com, tglx@linutronix.de,
	linux-kbuild@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v5 2/4] kernel hacking: new config NO_AUTO_INLINE to disable compiler auto-inline optimizations
Date: Mon, 11 Jun 2018 17:46:33 +0200	[thread overview]
Message-ID: <20180611154633.GC13775@localhost> (raw)
In-Reply-To: <20180608160355.67712eb8@vmware.local.home>

On Fri, Jun 08, 2018 at 04:03:55PM -0400, Steven Rostedt wrote:
> On Thu, 7 Jun 2018 11:18:16 +0200
> Johan Hovold <johan@kernel.org> wrote:
> 
> 
> > If you want to work around the warning and think you can do it in some
> > non-contrived way, then go for it.
> > 
> > Clearing the request buffer, checking for termination using strnlen, and
> > then using memcpy might not be too bad.
> > 
> > But after all, it is a false positive, so leaving things as they stand
> > is fine too.
> 
> Not sure how contrived you think this is, but it solves the warning
> without adding extra work in the normal case.
> 
> -- Steve
> 
> diff --git a/drivers/staging/greybus/fw-management.c b/drivers/staging/greybus/fw-management.c
> index 71aec14f8181..4fb9f1dff47d 100644
> --- a/drivers/staging/greybus/fw-management.c
> +++ b/drivers/staging/greybus/fw-management.c
> @@ -150,15 +150,18 @@ static int fw_mgmt_load_and_validate_operation(struct fw_mgmt *fw_mgmt,
>  	}
>  
>  	request.load_method = load_method;
> -	strncpy(request.firmware_tag, tag, GB_FIRMWARE_TAG_MAX_SIZE);
> +	strncpy(request.firmware_tag, tag, GB_FIRMWARE_TAG_MAX_SIZE - 1);
>  
>  	/*
>  	 * The firmware-tag should be NULL terminated, otherwise throw error and
>  	 * fail.
>  	 */
> -	if (request.firmware_tag[GB_FIRMWARE_TAG_MAX_SIZE - 1] != '\0') {
> -		dev_err(fw_mgmt->parent, "load-and-validate: firmware-tag is not NULL terminated\n");
> -		return -EINVAL;
> +	if (request.firmware_tag[GB_FIRMWARE_TAG_MAX_SIZE - 2] != '\0') {
> +		if (tag[GB_FIRMWARE_TAG_MAX_SIZE - 1] != '\0') {
> +			dev_err(fw_mgmt->parent, "load-and-validate: firmware-tag is not NULL terminated\n");
> +			return -EINVAL;
> +		}
> +		request.firmware_tag[GB_FIRMWARE_TAG_MAX_SIZE - 1] = '\0';
>  	}

Well, I think it's quite far from obvious what is going on above, and
not least why things are being done this way (which a comment may help
with).

And just NUL-terminating the (automatic) buffer before returning wasn't
enough? Then it may be better to do away with strncpy completely.

But should we really be working around gcc this way? If the
implementation of this new warning isn't smart enough yet, should it not
just be disabled instead?

Thanks,
Johan

  parent reply	other threads:[~2018-06-11 15:46 UTC|newest]

Thread overview: 58+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-06-05  8:13 [RESEND PATCH v5 0/4] kernel hacking: GCC optimization for better debug experience (-Og) changbin.du
2018-06-05  8:13 ` changbin.du
2018-06-05  8:13 ` [PATCH v5 1/4] x86/mm: surround level4_kernel_pgt with #ifdef CONFIG_X86_5LEVEL...#endif changbin.du
2018-06-05  8:13   ` changbin.du
2018-06-05  8:13 ` [PATCH v5 2/4] kernel hacking: new config NO_AUTO_INLINE to disable compiler auto-inline optimizations changbin.du
2018-06-05  8:13   ` changbin.du
2018-06-05 21:21   ` kbuild test robot
2018-06-05 21:21     ` kbuild test robot
2018-06-06 13:57     ` Steven Rostedt
2018-06-06 13:57       ` Steven Rostedt
2018-06-06 14:26       ` Johan Hovold
2018-06-06 14:26         ` Johan Hovold
2018-06-06 18:26         ` Steven Rostedt
2018-06-06 18:26           ` Steven Rostedt
2018-06-07  4:17           ` Viresh Kumar
2018-06-07  4:17             ` Viresh Kumar
2018-06-07  7:46             ` Du, Changbin
2018-06-07  7:46               ` Du, Changbin
2018-06-07  8:38               ` Viresh Kumar
2018-06-07  8:38                 ` Viresh Kumar
2018-06-07  9:03                 ` Bernd Petrovitsch
2018-06-07  9:03                   ` Bernd Petrovitsch
2018-06-07  9:10                   ` Viresh Kumar
2018-06-07  9:10                     ` Viresh Kumar
2018-06-07  9:18                     ` Johan Hovold
2018-06-07  9:18                       ` Johan Hovold
2018-06-07  9:19                       ` Viresh Kumar
2018-06-07  9:19                         ` Viresh Kumar
2018-06-07 10:12                         ` Alex Elder
2018-06-07 10:12                           ` Alex Elder
2018-06-07 10:27                           ` Johan Hovold
2018-06-07 10:27                             ` Johan Hovold
2018-06-08 20:03                       ` Steven Rostedt
2018-06-08 20:03                         ` Steven Rostedt
2018-06-11 15:46                         ` Johan Hovold [this message]
2018-06-11 15:46                           ` Johan Hovold
2018-06-07  8:06             ` Johan Hovold
2018-06-07  8:06               ` Johan Hovold
2018-06-05 21:34   ` kbuild test robot
2018-06-05 21:34     ` kbuild test robot
2018-06-06 14:01     ` Steven Rostedt
2018-06-06 14:01       ` Steven Rostedt
2018-06-05  8:13 ` [PATCH v5 3/4] ARM: mm: fix build error in fix_to_virt with CONFIG_CC_OPTIMIZE_FOR_DEBUGGING changbin.du
2018-06-05  8:13   ` changbin.du
2018-06-05  8:13 ` [PATCH v5 4/4] kernel hacking: new config CC_OPTIMIZE_FOR_DEBUGGING to apply GCC -Og optimization changbin.du
2018-06-05  8:13   ` changbin.du
2018-06-10 10:44   ` kbuild test robot
2018-06-10 10:44     ` kbuild test robot
2018-06-10 15:49   ` kbuild test robot
2018-06-10 15:49     ` kbuild test robot
2018-06-11 16:00     ` Steven Rostedt
2018-06-11 16:00       ` Steven Rostedt
  -- strict thread matches above, loose matches on Subject: below --
2018-05-11  8:09 [PATCH v5 0/4] kernel hacking: GCC optimization for better debug experience (-Og) changbin.du
2018-05-11  8:09 ` [PATCH v5 2/4] kernel hacking: new config NO_AUTO_INLINE to disable compiler auto-inline optimizations changbin.du
2018-05-11  8:09   ` changbin.du
2018-05-17 15:49   ` kbuild test robot
2018-05-17 15:49     ` kbuild test robot
2018-05-17 17:58   ` kbuild test robot
2018-05-17 17:58     ` kbuild test robot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180611154633.GC13775@localhost \
    --to=johan@kernel.org \
    --cc=akpm@linux-foundation.org \
    --cc=alex.elder@linaro.org \
    --cc=arnd@arndb.de \
    --cc=bernd@petrovitsch.priv.at \
    --cc=broonie@kernel.org \
    --cc=changbin.du@gmail.com \
    --cc=changbin.du@intel.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=kbuild-all@01.org \
    --cc=lgirdwood@gmail.com \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kbuild@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-sparse@vger.kernel.org \
    --cc=linux@armlinux.org.uk \
    --cc=lkp@intel.com \
    --cc=michal.lkml@markovi.net \
    --cc=mingo@redhat.com \
    --cc=rdunlap@infradead.org \
    --cc=rostedt@goodmis.org \
    --cc=tglx@linutronix.de \
    --cc=viresh.kumar@linaro.org \
    --cc=x86@kernel.org \
    --cc=yamada.masahiro@socionext.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).