From: Jeff King Date: Mon, 14 May 2012 21:02:25 GMT Subject: Re: [PATCH 1/2] drop length limitations on gecos-derived names and emails Message-ID: <20120514210225.GA9677@sigill.intra.peff.net> In-Reply-To: <20120514162824.GA24457@sigill.intra.peff.net> On Mon, May 14, 2012 at 12:28:24PM -0400, Jeff King wrote: > When we pull the user's name from the GECOS field of the > passwd file (or generate an email address based on their > username and hostname), we put the result into a > static buffer. While it's extremely unlikely that anybody > ever hit these limits (after all, in such a case their > parents must have hated them), we still had to deal with the > error cases in our code. > > Converting these static buffers to strbufs lets us simplify > the code and drop some error messages from the documentation > that have confused some users. > > Note that there is still one length limitation: the > gethostname interface requires us to provide a static > buffer, so we arbitrarily choose 1024 bytes for the > hostname. > > Signed-off-by: Jeff King Ick, there is something very wrong with this patch. While testing a completely unrelated bug, I noticed that it set my name to "Jeff KingJeff KingJeff King". Which, while a wonderful ego massage, is probably excessive. I'm sure the problem is the switch to strbuf's appending semantics rather than strlcpy's overwriting semantics. I thought we were careful not to bother re-run the gecos code if we had already gotten a name, but obviously that is not the case in some code paths. I'll investigate. -Peff