From 3683341aa99ba894765447612c7f9079680beb31 Mon Sep 17 00:00:00 2001 From: Jason Volk Date: Sun, 18 Feb 2018 15:21:37 -0800 Subject: [PATCH] ircd::util: Ensure null termination after all direct writes into string. --- include/ircd/util/util.h | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/include/ircd/util/util.h b/include/ircd/util/util.h index 1b09b3ffa..060007604 100644 --- a/include/ircd/util/util.h +++ b/include/ircd/util/util.h @@ -174,7 +174,14 @@ string(const size_t &size, const_cast(ret.data()), ret.size() }; - ret.resize(closure(buf)); + const size_t consumed + { + closure(buf) + }; + + assert(consumed <= buffer::size(buf)); + data(buf)[consumed] = '\0'; + ret.resize(consumed); return ret; }