From 7388822d9393b64a9eb25e34c9bac56fb7f39f15 Mon Sep 17 00:00:00 2001 From: beck <> Date: Fri, 30 May 2014 13:00:39 +0000 Subject: Fix some more nasty stringyness in here by using asprintf instead of cruft. gets rid of the second last use of the awful DECIMAL_SIZE. --- src/lib/libcrypto/bio/bss_conn.c | 17 +++++++---------- src/lib/libssl/src/crypto/bio/bss_conn.c | 17 +++++++---------- 2 files changed, 14 insertions(+), 20 deletions(-) (limited to 'src') diff --git a/src/lib/libcrypto/bio/bss_conn.c b/src/lib/libcrypto/bio/bss_conn.c index a31e5a170b..3175b94112 100644 --- a/src/lib/libcrypto/bio/bss_conn.c +++ b/src/lib/libcrypto/bio/bss_conn.c @@ -472,22 +472,19 @@ conn_ctrl(BIO *b, int cmd, long num, void *ptr) free(data->param_port); data->param_port = BUF_strdup(ptr); } else if (num == 2) { - char buf[16]; unsigned char *p = ptr; - - snprintf(buf, sizeof buf, "%d.%d.%d.%d", - p[0], p[1], p[2], p[3]); free(data->param_hostname); - data->param_hostname = BUF_strdup(buf); + if (asprintf(&data->param_hostname, + "%u.%u.%u.%u", p[0], p[1], + p[2], p[3]) == -1) + data->param_hostname = NULL; memcpy(&(data->ip[0]), ptr, 4); } else if (num == 3) { - char buf[DECIMAL_SIZE(int) + 1]; - - snprintf(buf, sizeof buf, "%d", - *(int *)ptr); free(data->param_port); - data->param_port = BUF_strdup(buf); data->port= *(int *)ptr; + if (asprintf(&data->param_port, "%d", + data->port) == -1) + data->param_port = NULL; } } break; diff --git a/src/lib/libssl/src/crypto/bio/bss_conn.c b/src/lib/libssl/src/crypto/bio/bss_conn.c index a31e5a170b..3175b94112 100644 --- a/src/lib/libssl/src/crypto/bio/bss_conn.c +++ b/src/lib/libssl/src/crypto/bio/bss_conn.c @@ -472,22 +472,19 @@ conn_ctrl(BIO *b, int cmd, long num, void *ptr) free(data->param_port); data->param_port = BUF_strdup(ptr); } else if (num == 2) { - char buf[16]; unsigned char *p = ptr; - - snprintf(buf, sizeof buf, "%d.%d.%d.%d", - p[0], p[1], p[2], p[3]); free(data->param_hostname); - data->param_hostname = BUF_strdup(buf); + if (asprintf(&data->param_hostname, + "%u.%u.%u.%u", p[0], p[1], + p[2], p[3]) == -1) + data->param_hostname = NULL; memcpy(&(data->ip[0]), ptr, 4); } else if (num == 3) { - char buf[DECIMAL_SIZE(int) + 1]; - - snprintf(buf, sizeof buf, "%d", - *(int *)ptr); free(data->param_port); - data->param_port = BUF_strdup(buf); data->port= *(int *)ptr; + if (asprintf(&data->param_port, "%d", + data->port) == -1) + data->param_port = NULL; } } break; -- cgit v1.2.3-55-g6feb