From b457dff840ff1e0e1c278b9aa492628f025422c3 Mon Sep 17 00:00:00 2001 From: Andrii Kroitor Date: Thu, 29 Jan 2015 21:17:00 +0100 Subject: [PATCH] evil: fix SEGFAULT in strcasestr Summary: there was an unsigned int underflow. @fix Test Plan: strcasestr("a", "bbb"); Reviewers: cedric, raster, Hermet, seoz Subscribers: cedric, reutskiy.v.v Differential Revision: https://phab.enlightenment.org/D1909 Signed-off-by: Cedric BAIL --- src/lib/evil/evil_string.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/lib/evil/evil_string.c b/src/lib/evil/evil_string.c index 11121723f0..7d7d88c13a 100644 --- a/src/lib/evil/evil_string.c +++ b/src/lib/evil/evil_string.c @@ -58,7 +58,9 @@ char *strcasestr(const char *haystack, const char *needle) return NULL; length_needle = strlen(needle); - length_haystack = strlen(haystack) - length_needle + 1; + length_haystack = strlen(haystack); + if (length_haystack < length_needle) return NULL; + length_haystack = length_haystack - length_needle + 1; for (i = 0; i < length_haystack; i++) {