cache: Fix bug of memmove
authorJosé Bollo <jose.bollo@iot.bzh>
Fri, 26 Jul 2019 12:27:13 +0000 (14:27 +0200)
committerJosé Bollo <jose.bollo@iot.bzh>
Fri, 26 Jul 2019 12:27:13 +0000 (14:27 +0200)
Change-Id: I75b346ea71a0c3fbc1109cd0aedf9ed7c5ebbce9
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
src/cache.c

index 5d38b89..299d952 100644 (file)
@@ -92,7 +92,7 @@ drop_at(
        e = pos + l;
        cache->used -= l;
        if (cache->used > e)
-               memmove(&cache->content[pos], &cache->content[e], cache->used - e);
+               memmove(&cache->content[pos], &cache->content[e], cache->used - pos);
 }
 
 static
@@ -172,13 +172,18 @@ match(
        const rcyn_key_t *key
 ) {
        head = cmp(head, key->client);
-       if (head)
+       if (head) {
                head = cmp(head, key->session);
-       if (head)
-               head = cmp(head, key->user);
-       if (head)
-               head = cmpi(head, key->permission);
-       return !!head;
+               if (head) {
+                       head = cmp(head, key->user);
+                       if (head) {
+                               head = cmpi(head, key->permission);
+                               if (head)
+                                       return 1;
+                       }
+               }
+       }
+       return 0;
 }
 
 static