Re: m68k: main.c:(.init.text+0x730): undefined reference to `strlen'

!MAILaRCHIVE_VOTE_RePLACE
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: Andreas Schwab <schwab@...>
Cc: Adrian Bunk <bunk@...>, Geert Uytterhoeven <geert@...>, Linux/m68k <linux-m68k@...>, Linux Kernel Development <linux-kernel@...>
Date: Wednesday, May 14, 2008 - 10:58 am

[Andreas Schwab - Wed, May 14, 2008 at 04:55:37PM +0200]
| Cyrill Gorcunov <gorcunov@gmail.com> writes:
| 
| > I think it would help to see ..tmp_vmlinux1.cmd to ensure for inclusion
| > of lib/lib.a. strlen was there without my patch as Andreas already pointed,
| > I've just added strncat wich is coming from lib/string.o for this arch.
| 
| Actually the way strncat is used here is broken anyway, it does not
| prevent array overrun.  The third argument of strncat only limits the
| amount of characters copied, without taking into account the length of
| the string already in the buffer.  Consequently gcc has optimized the
| call to strncat into a simple call to strcat, since none of the copied
| strings are longer than sizeof(msgbuf).  This strcat call is then
| expanded to include a call to strlen.
| 
| So a better fix would probably be to make msgbuf big enough and use
| strcat instead.
| 
| Andreas.
| 
| -- 
| Andreas Schwab, SuSE Labs, schwab@suse.de
| SuSE Linux Products GmbH, Maxfeldstraße 5, 90409 Nürnberg, Germany
| PGP key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
| "And now for something completely different."
| 

Thanks Andreas, I'll fix it.

		- Cyrill -
--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
m68k: main.c:(.init.text+0x730): undefined reference to `str..., Geert Uytterhoeven, (Wed May 14, 4:02 am)
Re: m68k: main.c:(.init.text+0x730): undefined reference to ..., Geert Uytterhoeven, (Wed May 14, 4:14 pm)
Re: m68k: main.c:(.init.text+0x730): undefined reference to ..., Cyrill Gorcunov, (Wed May 14, 10:58 am)