]> Nishi Git Mirror - gwion.git/commitdiff
:bug: overflow Shred arg size
authorJérémie Astor <fennecdjay@gmail.com>
Mon, 2 Aug 2021 19:48:13 +0000 (21:48 +0200)
committerJérémie Astor <fennecdjay@gmail.com>
Mon, 2 Aug 2021 19:48:13 +0000 (21:48 +0200)
src/lib/shred.c

index b570e8ef2bbf72d4841a736f4a47c5189e708bff..7c2533e79b237cd94ab872a82e9151f8deb98165 100644 (file)
@@ -104,7 +104,7 @@ static MFUN(shred_args) {
 static MFUN(shred_arg) {
   const VM_Shred s   = ME(o);
   const m_int    idx = *(m_int *)MEM(SZ_INT);
-  if (s->info->args.ptr && idx >= 0) {
+  if (s->info->args.ptr && idx >= 0 && (m_uint)idx < vector_size(&s->info->args)) {
     const m_str str = (m_str)vector_at(&s->info->args, *(m_uint *)MEM(SZ_INT));
     *(M_Object *)RETURN = str ? new_string(shred->info->mp, shred, str) : NULL;
   } else