wild use of strlcpy() broke ipv6 support

Matthieu Patou mat at samba.org
Sun Apr 1 02:07:01 MDT 2012

On 03/30/2012 09:21 PM, Jeremy Allison wrote:
> On Fri, Mar 30, 2012 at 08:53:21PM -0700, Jeremy Allison wrote:
>> On Fri, Mar 30, 2012 at 08:52:09PM -0700, Jeremy Allison wrote:
>>> On Fri, Mar 30, 2012 at 06:02:06PM -0700, Matthieu Patou wrote:
>>>> At least for this two changes you didn't get completely the sense of
>>>> the strlcpy(), the idea is that if you have
>>>> fe80::221:ccff:fe5f:7e51%eth0 to get the number of the interface and
>>>> remove what is after '%'.
>>>> so we should in this case always truncate and ihmo it's not a problem.
>>> Ok - I'm boilerplate fixing all strlcpy uses. If it truncates
>>> then by definition it's a problem, and we shouldn't be using
>>> strlcpy() - we should be correctly paying attention to
>>> the length we really want.
>>> I do (vaguely :-) remember writing this code (or something
>>> like it). I'll take a look and fix up asap.
>> Ah yes - now I looked at it I did write this code originally :-).
>> I'll fix.
> Here's the fix (attached). autobuilding now.
> Sorry for the breakage, but we really do need to
> correctly use strlcpy/strlcat to check if we ever
> get truncation (I'm at fault here, as I introduced
> them originally - and added the incorrect idiom
> when using them).
> I'll try and be a little more careful when adding
> the checks if we're doing anything sophisticated
> with the lengths. It's a very rare case where
> we're using truncation as a desired side effect
> (and is an *explicitly* incorrect use of the API :-).
I'll just tested your patch it's working for local-link ipv6, was too 
busy today between homedepot and fry's and enjoying this beautifull bay 
area weather :-)
And please can you recheck that you didn't introduced other regression.

I'm thinking of having one instance of samba in make test with interface 
+ bind interface only combo set so that we can catch this problem in the 


Matthieu Patou
Samba Team

More information about the samba-cvs mailing list