(addinitgroupsX): Correctly compute size of fixed-size portion of the record.
authordrepper <drepper>
Thu, 12 Jun 2008 16:04:05 +0000 (16:04 +0000)
committerdrepper <drepper>
Thu, 12 Jun 2008 16:04:05 +0000 (16:04 +0000)
nscd/initgrcache.c

index 3355df5..c5693c6 100644 (file)
@@ -246,7 +246,8 @@ addinitgroupsX (struct database_dyn *db, int fd, request_header *req,
   else
     {
 
-      written = total = sizeof (struct dataset) + start * sizeof (int32_t);
+      written = total = (offsetof (struct dataset, strdata)
+                        + start * sizeof (int32_t));
 
       /* If we refill the cache, first assume the reconrd did not
         change.  Allocate memory on the cache since it is likely
@@ -307,6 +308,9 @@ addinitgroupsX (struct database_dyn *db, int fd, request_header *req,
       /* Finally the user name.  */
       memcpy (cp, key, req->key_len);
 
+      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)