diff options
Diffstat (limited to 'source3/lib')
| -rw-r--r-- | source3/lib/dbwrap_util.c | 8 | 
1 files changed, 6 insertions, 2 deletions
diff --git a/source3/lib/dbwrap_util.c b/source3/lib/dbwrap_util.c index 3bf312d0d0..7789f69223 100644 --- a/source3/lib/dbwrap_util.c +++ b/source3/lib/dbwrap_util.c @@ -150,9 +150,13 @@ int32 dbwrap_change_int32_atomic(struct db_context *db, const char *keystr,  		return -1;  	} -	if ((rec->value.dptr != NULL) -	    && (rec->value.dsize == sizeof(val))) { +	if (rec->value.dptr == NULL) { +		val = *oldval; +	} else if (rec->value.dsize == sizeof(val)) {  		val = IVAL(rec->value.dptr, 0); +		*oldval = val; +	} else { +		return -1;  	}  	val += change_val;  | 
