From 31833ed6f76587f903d5ec6275838868a96dc34d Mon Sep 17 00:00:00 2001 From: skarg Date: Thu, 27 Sep 2012 19:54:56 +0000 Subject: [PATCH] Added zero padding when doing an ANSI string copy, similar to string initialization. --- bacnet-stack/src/bacstr.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/bacnet-stack/src/bacstr.c b/bacnet-stack/src/bacstr.c index 9791d4de..98d69c28 100644 --- a/bacnet-stack/src/bacstr.c +++ b/bacnet-stack/src/bacstr.c @@ -294,8 +294,12 @@ bool characterstring_ansi_copy( if (dest && src && (src->encoding == CHARACTER_ANSI_X34) && (src->length < dest_max_len)) { - for (i = 0; i < src->length; i++) { - dest[i] = src->value[i]; + for (i = 0; i < dest_max_len; i++) { + if (i < src->length) { + dest[i] = src->value[i]; + } else { + dest[i] = 0; + } } return true; } @@ -548,7 +552,7 @@ bool utf8_isvalid( if (length == 0) { return true; } - for (p = (unsigned char *) str; p < pend; p++) { + for (p = (const unsigned char *) str; p < pend; p++) { c = *p; /* null in middle of string */ if (c == 0) {