(cache_addgr): Correctly compute size of fixed-size portion of the record.
authordrepper <drepper>
Thu, 12 Jun 2008 16:03:36 +0000 (16:03 +0000)
committerdrepper <drepper>
Thu, 12 Jun 2008 16:03:36 +0000 (16:03 +0000)
nscd/grpcache.c

index e391dc3..c49c0e1 100644 (file)
@@ -190,7 +190,7 @@ cache_addgr (struct database_dyn *db, int fd, request_header *req,
          gr_mem_len_total += gr_mem_len[gr_mem_cnt];
        }
 
-      written = total = (sizeof (struct dataset)
+      written = total = (offsetof (struct dataset, strdata)
                         + gr_mem_cnt * sizeof (uint32_t)
                         + gr_name_len + gr_passwd_len + gr_mem_len_total);
 
@@ -252,6 +252,9 @@ cache_addgr (struct database_dyn *db, int fd, request_header *req,
       char *key_copy = cp + key_offset;
       assert (key_copy == (char *) rawmemchr (cp, '\0') + 1);
 
+      assert (cp == dataset->strdata + total - offsetof (struct dataset,
+                                                        strdata));
+
       /* Now we can determine whether on refill we have to create a new
         record or not.  */
       if (he != NULL)