From 64ec42aaa327d6b3c2465d2cbdb30f0e1b52db9f Mon Sep 17 00:00:00 2001 From: lotodore Date: Mon, 16 Mar 2009 22:13:55 +0000 Subject: [PATCH] Fix buffer overflow in libircclient (concerning DCC, which was unused, so this is just to satisfy pedantic compilers :-) ). --- src/third_party/libircclient/src/dcc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/third_party/libircclient/src/dcc.c b/src/third_party/libircclient/src/dcc.c index 358e1427..7da1a345 100644 --- a/src/third_party/libircclient/src/dcc.c +++ b/src/third_party/libircclient/src/dcc.c @@ -531,7 +531,8 @@ static int libirc_new_dcc_session (irc_session_t * session, unsigned long ip, un memset (&saddr, 0, sizeof(saddr)); saddr.sin_family = AF_INET; - memcpy (&saddr.sin_addr, &session->local_addr, sizeof(session->local_addr)); + // NOTE: This will not work with IPv6! + memcpy (&saddr.sin_addr, &session->local_addr, sizeof(struct in_addr)); saddr.sin_port = htons (0); if ( bind (dcc->sock, (struct sockaddr *) &saddr, sizeof(saddr)) < 0 )