netdev
[Top] [All Lists]

Re: [PATCH 2.6]: IPv4: strcpy -> strlcpy

To: David Woodhouse <dwmw2@xxxxxxxxxxxxx>
Subject: Re: [PATCH 2.6]: IPv4: strcpy -> strlcpy
From: Ingo Oeser <ioe-lkml@xxxxxxxxxx>
Date: Sun, 30 Nov 2003 11:26:22 +0100
Cc: Timo Kamph <timo@xxxxxxxxx>, Linux Kernel Mailinglist <linux-kernel@xxxxxxxxxxxxxxx>, netdev@xxxxxxxxxxx, davem@xxxxxxxxxx
In-reply-to: <1070012538.10048.13.camel@xxxxxxxxxxxxxxxxxxxxxxxxxx>
References: <20031127142125.GG8276@xxxxxxxxxxxx> <1069970946.2138.13.camel@xxxxxxxxxxxxxxxxxxxxxxxx> <1070012538.10048.13.camel@xxxxxxxxxxxxxxxxxxxxxxxxxx>
Sender: netdev-bounce@xxxxxxxxxxx
User-agent: KMail/1.5.4
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Friday 28 November 2003 10:42, David Woodhouse wrote:
> On Thu, 2003-11-27 at 23:09 +0100, Felipe Alfaro Solana wrote:
> > On Thu, 2003-11-27 at 21:48, Timo Kamph wrote:
> > > > +       strlcpy(label->label, name, sizeof(label->name));
> > >
> > >                                                                       
> > > ^^^^^^ I guess this shoud be label->label, or am I wrong?
> >
> > Oh my god! Two consecutive mistakes with the same patch! I should have
> > some sleep... Here's the one with the typo corrected.
>
> Perhaps we should consider
>
> #define strsizecpy(x, y) strlcpy((x), (y), sizeof(x))

Then we should do:

#define strsizecpy(x, y) strlcpy(x, y, sizeof(x)/sizeof(x[0]))

to rule out passing the wrong variables or dereferencing to much.

Unfortunatly there is no simple way in C to differentiate between array and
pointer.

There is a way with typeof, but that is hackish.


Regards

Ingo Oeser

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.2 (GNU/Linux)

iD8DBQE/ycXOU56oYWuOrkARAiJ8AJ9wkl1ijJVn5M+lGhUwSwWRxzxxHwCg2nAU
t+9HdAasQDZo/GQFuj9s5ZU=
=py/4
-----END PGP SIGNATURE-----



<Prev in Thread] Current Thread [Next in Thread>