efreetd - cache - fix handling a text index file with 0 length lines
authorCarsten Haitzler (Rasterman) <raster@rasterman.com>
Wed, 1 Apr 2015 11:43:54 +0000 (20:43 +0900)
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>
Wed, 1 Apr 2015 11:44:57 +0000 (20:44 +0900)
this fixes an efreetd cache crash where files like icon.exts might
have lines with just a newline and no extension/content on the line.

@fix

src/bin/efreet/efreetd_cache.c

index 0d58897..6c43749 100644 (file)
@@ -411,9 +411,11 @@ fill_list(const char *file, Eina_List **l)
    if (!it) goto error;
    EINA_ITERATOR_FOREACH(it, line)
      {
-        const char *end;
-        end = line->end - 1;
-        *l = eina_list_append(*l, eina_stringshare_add_length(line->start, end - line->start));
+        if (line->end > line->start)
+          {
+             const char *end = line->end - 1;
+             *l = eina_list_append(*l, eina_stringshare_add_length(line->start, end - line->start));
+          }
      }
    eina_iterator_free(it);
 error: