]> mj.ucw.cz Git - libucw.git/commitdiff
Replacing of buckets during shakedown didn't work.
authorMartin Mares <mj@ucw.cz>
Fri, 16 Jan 2004 17:01:58 +0000 (17:01 +0000)
committerMartin Mares <mj@ucw.cz>
Fri, 16 Jan 2004 17:01:58 +0000 (17:01 +0000)
lib/bucket.c

index df9740bd5cd8dd5972a8bbd7d4c15556d1b83bd7..ec672da322eac65bc66c8a71dcff988dcdd5369f 100644 (file)
@@ -609,20 +609,20 @@ obuck_shakedown(int (*kibitz)(struct obuck_header *old, oid_t new, byte *buck))
          int status = kibitz(rhdr, w_bucket_start >> OBUCK_SHIFT, (byte *)(rhdr+1));
          if (status)
            {
+             int lnew = l;
              if (status > 1)
                {
                  /* Changed! Reconstruct the trailer. */
-                 int l2 = obuck_bucket_size(rhdr->length);
-                 ASSERT(l2 <= l);
-                 PUT_U32((byte *)rhdr + l2 - 4, OBUCK_TRAILER);
-                 l = l2;
+                 lnew = obuck_bucket_size(rhdr->length);
+                 ASSERT(lnew <= l);
+                 PUT_U32((byte *)rhdr + lnew - 4, OBUCK_TRAILER);
                  changed = 1;
                }
              whdr = (struct obuck_header *)(buf+woff);
              if (rhdr != whdr)
-               memmove(whdr, rhdr, l);
+               memmove(whdr, rhdr, lnew);
              whdr->oid = w_bucket_start >> OBUCK_SHIFT;
-             woff += l;
+             woff += lnew;
            }
          else
            changed = 1;