summaryrefslogtreecommitdiff
path: root/buffer.c
diff options
context:
space:
mode:
authorMatt Johnston <matt@ucc.asn.au>2018-02-17 19:29:51 +0800
committerMatt Johnston <matt@ucc.asn.au>2018-02-17 19:29:51 +0800
commit104e39e9caf447cb416a6d83ea7eedd4481ce4c3 (patch)
treeb8b33aaee9f7336e592da7a916ee05bae3412c22 /buffer.c
parent2b551518f8625f87a22ea1fde40e3c7d841bf9d0 (diff)
parent769be133237df6d9a4028645e7e9924be8544c8f (diff)
downloaddropbear-104e39e9caf447cb416a6d83ea7eedd4481ce4c3.tar.gz
merge from main
Diffstat (limited to 'buffer.c')
-rw-r--r--buffer.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/buffer.c b/buffer.c
index 4b5d56d..e70ec29 100644
--- a/buffer.c
+++ b/buffer.c
@@ -209,6 +209,7 @@ char* buf_getstring(buffer* buf, unsigned int *retlen) {
unsigned int len;
char* ret;
+ void* src = NULL;
len = buf_getint(buf);
if (len > MAX_STRING_LEN) {
dropbear_exit("String too long");
@@ -217,8 +218,9 @@ char* buf_getstring(buffer* buf, unsigned int *retlen) {
if (retlen != NULL) {
*retlen = len;
}
+ src = buf_getptr(buf, len);
ret = m_malloc(len+1);
- memcpy(ret, buf_getptr(buf, len), len);
+ memcpy(ret, src, len);
buf_incrpos(buf, len);
ret[len] = '\0';