From 2b6dcc83d6bf49c888b2b3586a895dfd57bfc8c0 Mon Sep 17 00:00:00 2001 From: Leonid Evdokimov Date: Fri, 11 Feb 2011 01:43:47 +0200 Subject: [PATCH] Another s/strcpy/memcpy/ to fix another OpenBSD warning. --- socks4.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/socks4.c b/socks4.c index 54dd7c5..d4e6214 100644 --- a/socks4.c +++ b/socks4.c @@ -98,14 +98,16 @@ static struct evbuffer *socks4_mkconnect(redsocks_client *client) { const redsocks_config *config = &client->instance->config; const char *username = config->login ? config->login : ""; - int len = sizeof(socks4_req) + strlen(username); + // space for \0 comes from socks4_req->login + size_t username_len = strlen(username); + size_t len = sizeof(socks4_req) + username_len; socks4_req *req = calloc(1, len); req->ver = socks4_ver; req->cmd = socks4_cmd_connect; req->port = client->destaddr.sin_port; req->addr = client->destaddr.sin_addr.s_addr; - strcpy(req->login, username); + memcpy(req->login, username, username_len + 1); struct evbuffer *ret = mkevbuffer(req, len); free(req);