From 620028fd19b091f525964b689ebd3a70e1636da2 Mon Sep 17 00:00:00 2001 From: M Joonas Pihlaja Date: Mon, 8 Dec 2008 09:23:37 +0200 Subject: [PATCH] [script] Don't segfault when hashing empty strings. Check for the empty string. --- util/cairo-script/cairo-script-interpreter.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/util/cairo-script/cairo-script-interpreter.c b/util/cairo-script/cairo-script-interpreter.c index fea6a4add..8f8af9062 100644 --- a/util/cairo-script/cairo-script-interpreter.c +++ b/util/cairo-script/cairo-script-interpreter.c @@ -221,12 +221,15 @@ static unsigned long _intern_string_hash (const char *str, int len) { const signed char *p = (const signed char *) str; - unsigned int h = *p; + if (len > 0) { + unsigned int h = *p; - for (p += 1; --len; p++) - h = (h << 5) - h + *p; + while (--len) + h = (h << 5) - h + *++p; - return h; + return h; + } + return 0; } static cairo_bool_t