[SCM] Samba Shared Repository - branch master updated
Ralph Böhme
slow at samba.org
Mon Nov 30 21:32:03 UTC 2015
The branch, master has been updated
via c2de842 s3:talloc_dict: fix a SIGBUS when dereferencing unaligned pointers
from a84eed5 lib/param: add a fixed unified lpcfg_string_{free,set,set_upper}() infrastructure
https://git.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit c2de8425d9a33baeb743a611c8169131b975f179
Author: Ralph Boehme <slow at samba.org>
Date: Thu Nov 26 11:10:38 2015 +0100
s3:talloc_dict: fix a SIGBUS when dereferencing unaligned pointers
Signed-off-by: Ralph Boehme <slow at samba.org>
Reviewed-by: Jeremy Allison <jra at samba.org>
Autobuild-User(master): Ralph Böhme <slow at samba.org>
Autobuild-Date(master): Mon Nov 30 22:31:16 CET 2015 on sn-devel-104
-----------------------------------------------------------------------
Summary of changes:
source3/lib/talloc_dict.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
Changeset truncated at 500 lines:
diff --git a/source3/lib/talloc_dict.c b/source3/lib/talloc_dict.c
index 71ab899..7594679 100644
--- a/source3/lib/talloc_dict.c
+++ b/source3/lib/talloc_dict.c
@@ -72,7 +72,7 @@ bool talloc_dict_set(struct talloc_dict *dict, DATA_BLOB key, void *pdata)
TALLOC_FREE(rec);
return false;
}
- old_data = *(void **)(value.dptr);
+ memcpy(&old_data, value.dptr, sizeof(old_data));
TALLOC_FREE(old_data);
if (data == NULL) {
status = dbwrap_record_delete(rec);
@@ -138,6 +138,7 @@ static int talloc_dict_traverse_fn(struct db_record *rec, void *private_data)
TDB_DATA value;
struct talloc_dict_traverse_state *state =
(struct talloc_dict_traverse_state *)private_data;
+ void *p;
key = dbwrap_record_get_key(rec);
value = dbwrap_record_get_value(rec);
@@ -145,8 +146,10 @@ static int talloc_dict_traverse_fn(struct db_record *rec, void *private_data)
if (value.dsize != sizeof(void *)) {
return -1;
}
+
+ memcpy(&p, value.dptr, sizeof(p));
return state->fn(data_blob_const(key.dptr, key.dsize),
- *(void **)value.dptr, state->private_data);
+ p, state->private_data);
}
/*
--
Samba Shared Repository
More information about the samba-cvs
mailing list