Revert "tdbtool: fix off-by-one error in argument length. (bug #2344)"
authorMichael Adam <obnox@samba.org>
Wed, 9 Jul 2008 10:48:05 +0000 (12:48 +0200)
committerMichael Adam <obnox@samba.org>
Wed, 9 Jul 2008 11:01:12 +0000 (13:01 +0200)
This reverts commit fafb8ad2b81b9a46cf8259bedc1dca5023b06115.

This fix is not valid:

1. convert_string() is not only used for key strings but also for data.

2. Some databases use string_tdb_data() i.e. non-null-terminated strings
   as keynames and others (like the one I was using), use
   string_term_tdb_data(), i.e. zero-terminated key strings.

After discussion with Metze, the easiest (and proper way) to
handle this is to specify key names as "keyname\0" for databases
which use string_term_tdb_data().

Sorry for the noise...

Michael
(cherry picked from commit 17c012c4645f4e9542537c15f80d9b4e74304d11)

source/lib/tdb/tools/tdbtool.c

index 500e441c6a1c6036788a4ef2c0f004a42c2e76de..d104ccd7c44994e9d0f8ba138cbf4584343983dc 100644 (file)
@@ -598,7 +598,7 @@ static char *convert_string(char *instring, size_t *sizep)
        }
        length++;
     }
-    *sizep = length + 1;
+    *sizep = length;
     return instring;
 }