diff options
author | Alexey Yakovenko <waker@users.sourceforge.net> | 2014-05-11 18:50:46 +0200 |
---|---|---|
committer | Alexey Yakovenko <waker@users.sourceforge.net> | 2014-05-11 18:50:46 +0200 |
commit | d95b3f2e278f5c3743501fa18458e2e46c263c39 (patch) | |
tree | 1ef7706ca3ae12db92f86fd00deec8fc44d3102b /plugins/mms/libmms | |
parent | 7acc533a95ced8d6f8fa6ef85035806e64ad089a (diff) |
mms: fixed buffer overflow bug
Diffstat (limited to 'plugins/mms/libmms')
-rw-r--r-- | plugins/mms/libmms/mms.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/plugins/mms/libmms/mms.c b/plugins/mms/libmms/mms.c index 3aef102d..b23130fe 100644 --- a/plugins/mms/libmms/mms.c +++ b/plugins/mms/libmms/mms.c @@ -275,7 +275,11 @@ static int fallback_io_tcp_connect(void *data, const char *host, int port, int * for (rp = res; rp != NULL; rp = rp->ai_next) { struct sockaddr_in sin; memset (&sin, 0, sizeof (sin)); - memcpy (&sin, rp->ai_addr, rp->ai_addrlen); + int l = rp->ai_addrlen; + if (l > sizeof (sin)) { + l = sizeof (sin); + } + memcpy (&sin, rp->ai_addr, l); #endif time_t t = time (NULL); |