diff options
-rw-r--r-- | src/libexpr/eval.cc | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/src/libexpr/eval.cc b/src/libexpr/eval.cc index 563f24e48..6ba44cc1d 100644 --- a/src/libexpr/eval.cc +++ b/src/libexpr/eval.cc @@ -69,15 +69,11 @@ static char * dupString(const char * s) // empty string. static const char * makeImmutableStringWithLen(const char * s, size_t size) { - char * t; if (size == 0) return ""; -#if HAVE_BOEHMGC - t = GC_STRNDUP(s, size); -#else - t = strndup(s, size); -#endif - if (!t) throw std::bad_alloc(); + auto t = allocString(size + 1); + memcpy(t, s, size); + t[size] = 0; return t; } |