License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
-
#include "tdb_private.h"
+#ifndef MAX
+#define MAX(a,b) ((a) > (b) ? (a) : (b))
+#endif
/* check for an out of bounds access - if it is out of bounds then
see if the database has been expanded by someone else and expand
if (tdb->flags & TDB_INTERNAL)
return 0;
-#ifdef HAVE_MMAP
+#if HAVE_MMAP
if (tdb->map_ptr) {
int ret = munmap(tdb->map_ptr, tdb->map_size);
if (ret != 0)
if (tdb->flags & TDB_INTERNAL)
return;
-#ifdef HAVE_MMAP
+#if HAVE_MMAP
if (!(tdb->flags & TDB_NOMMAP)) {
tdb->map_ptr = mmap(NULL, tdb->map_size,
PROT_READ|(tdb->read_only? 0:PROT_WRITE),
- MAP_SHARED|MAP_FILE, tdb->fd, 0);
+ MAP_SHARED, tdb->fd, 0);
/*
* NB. When mmap fails it returns MAP_FAILED *NOT* NULL !!!!
unsigned char *buf;
/* some systems don't like zero length malloc */
- if (len == 0) {
- len = 1;
- }
-
- if (!(buf = (unsigned char *)malloc(len))) {
+ if (!(buf = (unsigned char *)malloc(len ? len : 1))) {
/* Ensure ecode is set for log fn. */
tdb->ecode = TDB_ERR_OOM;
TDB_LOG((tdb, TDB_DEBUG_ERROR,"tdb_alloc_read malloc failed len=%d (%s)\n",