summaryrefslogtreecommitdiff
path: root/libmysql/libmysql.c
diff options
context:
space:
mode:
authorunknown <guilhem@mysql.com>2004-06-17 15:40:13 +0200
committerunknown <guilhem@mysql.com>2004-06-17 15:40:13 +0200
commit8d59135cdca33a84bf3e005b690c6de66d64c930 (patch)
tree0b2d40c20563e0c37b0a9e86bee4f7b7c5919831 /libmysql/libmysql.c
parenta38900c90d23d98ea886e842a980ed3ea8220cce (diff)
downloadmariadb-git-8d59135cdca33a84bf3e005b690c6de66d64c930.tar.gz
Fix for BUG#4017 "mysql_real_connect buffer overflow"
libmysql/libmysql.c: safety fix
Diffstat (limited to 'libmysql/libmysql.c')
-rw-r--r--libmysql/libmysql.c3
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);