From b6571be9e4095d7868670b800c5cfbb63b577b45 Mon Sep 17 00:00:00 2001 From: Jelte Jansen Date: Thu, 19 Nov 2009 11:52:44 +0000 Subject: [PATCH] unsigned char arrays interpreted as strings are still null-terminated in c++ git-svn-id: svn://bind10.isc.org/svn/bind10/branches/jelte-datadef@298 e5f2f494-b856-4b98-b285-d166d9295462 --- src/lib/cc/cpp/data.cc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/lib/cc/cpp/data.cc b/src/lib/cc/cpp/data.cc index 41d1d27bc6..298337f6fd 100644 --- a/src/lib/cc/cpp/data.cc +++ b/src/lib/cc/cpp/data.cc @@ -735,17 +735,19 @@ encode_length(unsigned int length, unsigned char type) type |= ITEM_LENGTH_8; ss << type << val; } else if (length <= 0x0000ffff) { - unsigned char val[2]; + unsigned char val[3]; val[0] = (length & 0x0000ff00) >> 8; val[1] = (length & 0x000000ff); + val[2] = 0; type |= ITEM_LENGTH_16; ss << type << val; } else { - unsigned char val[4]; + unsigned char val[5]; val[0] = (length & 0xff000000) >> 24; val[1] = (length & 0x00ff0000) >> 16; val[2] = (length & 0x0000ff00) >> 8; val[3] = (length & 0x000000ff); + val[4] = 0; type |= ITEM_LENGTH_32; ss << type << val; }