/* Endian conversion: we only ever deal with 4 byte quantities */
void *tdb_convert(void *buf, uint32_t size)
{
- uint32_t i, *p = (uint32_t *)buf;
- for (i = 0; i < size / 4; i++)
- p[i] = TDB_BYTEREV(p[i]);
+ uint32_t i;
+ unsigned char *p = buf, tmp;
+
+ for (i = 0; i < size; i += 4) {
+ tmp = p[i];
+ p[i] = p[i+3];
+ p[i+3] = tmp;
+ tmp = p[i+1];
+ p[i+1] = p[i+2];
+ p[i+2] = tmp;
+ }
return buf;
}
#if HAVE_MMAP
if (tdb->map_ptr) {
- int ret = munmap(tdb->map_ptr, tdb->map_size);
+ int ret;
+
+ ret = munmap(tdb->map_ptr, tdb->map_size);
if (ret != 0)
return ret;
}
unsigned char *buf;
/* some systems don't like zero length malloc */
+
if (!(buf = (unsigned char *)malloc(len ? len : 1))) {
/* Ensure ecode is set for log fn. */
tdb->ecode = TDB_ERR_OOM;
tdb_next_hash_chain,
tdb_oob,
tdb_expand_file,
- tdb_brlock,
- tdb_brunlock
};
/*