diff options
author | unknown <guilhem@mysql.com> | 2004-06-17 15:40:13 +0200 |
---|---|---|
committer | unknown <guilhem@mysql.com> | 2004-06-17 15:40:13 +0200 |
commit | 414250c4f296529a3d20ac4c3cc5474fccaad47f (patch) | |
tree | 0b2d40c20563e0c37b0a9e86bee4f7b7c5919831 | |
parent | d544ef768cec04122e7b4a558bc03b2da837815b (diff) | |
download | mariadb-git-414250c4f296529a3d20ac4c3cc5474fccaad47f.tar.gz |
Fix for BUG#4017 "mysql_real_connect buffer overflow"
libmysql/libmysql.c:
safety fix
-rw-r--r-- | libmysql/libmysql.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/libmysql/libmysql.c b/libmysql/libmysql.c index c50193c5e2c..a0a4a26d971 100644 --- a/libmysql/libmysql.c +++ b/libmysql/libmysql.c @@ -1358,7 +1358,8 @@ mysql_real_connect(MYSQL *mysql,const char *host, const char *user, my_gethostbyname_r_free(); goto error; } - memcpy(&sock_addr.sin_addr,hp->h_addr, (size_t) hp->h_length); + memcpy(&sock_addr.sin_addr, hp->h_addr, + min(sizeof(sock_addr.sin_addr), (size_t) hp->h_length)); my_gethostbyname_r_free(); } sock_addr.sin_port = (ushort) htons((ushort) port); |