From 0bad0c321d51352bfb68c3759c7fd78489e7e254 Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Sat, 27 Feb 2010 18:32:49 +0900 Subject: * lib.c (search_str): Bugfix for empty haystack case: checks for end of string must use postincrement on the index, otherwise the access goes past the null terminator. --- lib.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'lib.c') diff --git a/lib.c b/lib.c index 6ce2a1f4..1d073a29 100644 --- a/lib.c +++ b/lib.c @@ -882,7 +882,7 @@ val search_str(val haystack, val needle, val start_num, val from_end) pos = f - h; else pos = -1; - } while (pos != -1 && (good = pos) != -1 && from_end && h[++start]); + } while (pos != -1 && (good = pos) != -1 && from_end && h[start++]); } else { size_t ln = c_num(length_str(needle)); @@ -892,7 +892,7 @@ val search_str(val haystack, val needle, val start_num, val from_end) if (!wcsncmp(h + start, n, ln)) good = start; - } while (h[++start] && (from_end || good == -1)); + } while (h[start++] && (from_end || good == -1)); } return (good == -1) ? nil : num(good); } -- cgit v1.2.3