Re: [PATCH rdma-core 2/5] util: Fix check_snprintf to use __rc__ for local

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Sep 01, 2017 at 09:00:01AM +0200, Nicolas Morey-Chaisemartin wrote:
>
>
> Le 01/09/2017 à 06:56, Leon Romanovsky a écrit :
> > On Thu, Aug 31, 2017 at 02:50:56PM -0600, Jason Gunthorpe wrote:
> >> To avoid clashing with user variables.
> >>
> >> Signed-off-by: Jason Gunthorpe <jgunthorpe@xxxxxxxxxxxxxxxxxxxx>
> >> ---
> >>  util/util.h | 4 ++--
> >>  1 file changed, 2 insertions(+), 2 deletions(-)
> >>
> >> diff --git a/util/util.h b/util/util.h
> >> index cbf0deca2dde7b..30d32ee6b51e24 100644
> >> --- a/util/util.h
> >> +++ b/util/util.h
> >> @@ -8,8 +8,8 @@
> >>   * error */
> >>  #define check_snprintf(buf, len, fmt, ...)                                     \
> >>  	({                                                                     \
> >> -		int rc = snprintf(buf, len, fmt, ##__VA_ARGS__);               \
> >> -		(rc < len && rc >= 0);                                         \
> >> +		int __rc__ = snprintf(buf, len, fmt, ##__VA_ARGS__);           \
> > It can't clash, because it is declared in the scope {..} of that define and
> > it is local to check_snprintf macro.
>
> It does if any of the va-args is called rc.
> This is "valid" C although not sure what printfs does print here (probably random stack value)
> {
>  int i = printf("i = %d\n", i);
> }

So how does this rename solve the issue?
Now, we can clash with __rc__ variable.

Thanks

>
> Nicolas

Attachment: signature.asc
Description: PGP signature


[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux