diff --git a/libr/egg/lang.c b/libr/egg/lang.c index 585de85c9b..7171650079 100644 --- a/libr/egg/lang.c +++ b/libr/egg/lang.c @@ -251,6 +251,11 @@ static void rcc_element(REgg *egg, char *str) { mode = NORMAL; break; case SYSCALL: + if (nsyscalls > 255){ + eprintf ("global-buffer-overflow in syscalls\n"); + break; + } + //XXX the mem for name and arg are not freed - MEMLEAK syscalls[nsyscalls].name = strdup (dstvar); syscalls[nsyscalls].arg = strdup (str); nsyscalls++; @@ -352,7 +357,7 @@ R_API char *r_egg_mkvar(REgg *egg, char *out, const char *_str, int delta) { for (i=0; i