From: Carsten Haitzler (Rasterman) Date: Sat, 6 Aug 2016 06:53:18 +0000 (+0900) Subject: eina log - handle possible overflow from high mem (last few bytes) or env X-Git-Tag: upstream/1.20.0~4902 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=83752435cf52da3bdcaf7f717922076f97d90bd5;p=platform%2Fupstream%2Fefl.git eina log - handle possible overflow from high mem (last few bytes) or env fixes CID 1361219 if you had an env var a few gb in size or we had stuff in the last bit of memory address space this might be an issue, but that won't happen. @fix --- diff --git a/src/lib/eina/eina_log.c b/src/lib/eina/eina_log.c index c08f93c..65bfbb8 100644 --- a/src/lib/eina/eina_log.c +++ b/src/lib/eina/eina_log.c @@ -1021,9 +1021,12 @@ eina_log_domain_parse_pending_globs(void) level = strtol((char *)(end + 1), &tmp, 10); if (tmp == (end + 1)) goto parse_end; - + // If the name of the log is more than 64k it's silly so give up + // as it's pointless and in theory could overflow pointer + if ((end - start) > 0xffff) + break; // Parse name - p = malloc(sizeof(Eina_Log_Domain_Level_Pending) + end - start + 1); + p = malloc(sizeof(Eina_Log_Domain_Level_Pending) + (end - start) + 1); if (!p) break;