Re: [PATCH] IPVS: replace sprintf to snprintf to avoid stack buffer overflow

From: Changli Gao
Date: Mon Apr 05 2010 - 22:59:18 EST


On Tue, Apr 6, 2010 at 10:50 AM, <wzt.wzt@xxxxxxxxx> wrote:
> IPVS not check the length of pp->name, use sprintf will cause stack buffer overflow.
> struct ip_vs_protocol{} declare name as char *, if register a protocol as:
> struct ip_vs_protocol ip_vs_test = {
> Â Â Â Â.name = Â Â Â Â Â Â Â Â "aaaaaaaa....128...aaa",
> Â Â Â Â.debug_packet = Â Â Â Â ip_vs_tcpudp_debug_packet,
> };
>
> when called ip_vs_tcpudp_debug_packet(), sprintf(buf, "%s TRUNCATED", pp->name);
> will cause stack buffer overflow.
>

Long messages will be truncated instead of buffer overflow. We need to
find a way to handle long messages elegantly.

--
Regardsï
Changli Gao(xiaosuo@xxxxxxxxx)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/