From d0073c46ef203a90bf2b6ce8dda00b012eecc689 Mon Sep 17 00:00:00 2001 From: Oldes Date: Thu, 16 Jul 2020 22:27:08 +0200 Subject: [PATCH] FIX: throw an error on excess values in any-string construction syntax related to: https://github.com/Oldes/Rebol-issues/issues/1034 --- src/core/t-string.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/core/t-string.c b/src/core/t-string.c index 090c892040..6e34ca6fd6 100644 --- a/src/core/t-string.c +++ b/src/core/t-string.c @@ -276,8 +276,9 @@ static REBSER *make_binary(REBVAL *arg, REBOOL make) ***********************************************************************/ { REBCNT i; - - if (!ANY_BINSTR(data)) return FALSE; + // allow only #[string! "data"] or #[string! "data" index] + if (!(ANY_BINSTR(data) && (IS_END(data+1) || (IS_INTEGER(data+1) && IS_END(data+2))))) + return FALSE; *out = *data++; VAL_SET(out, type); i = IS_INTEGER(data) ? Int32(data) - 1 : 0;