22456590 Component path components/samba/samba now can be reduced to components/samba .
Based on patch sent me by Ralph Boehme <[email protected]> :
https://lists.samba.org/archive/samba-technical/2015-November/110889.html
...patch is assumed to be released in community.
--- a/source3/lib/talloc_dict.c 2013-06-13 02:21:02.000000000 -0700
+++ b/source3/lib/talloc_dict.c 2015-11-27 15:11:39.212179014 -0800
@@ -72,7 +72,11 @@
TALLOC_FREE(rec);
return false;
}
+#if defined(__SUNPRO_C) && (defined(__sparcv9) && defined(_LP64))
+ memcpy(&old_data, value.dptr, sizeof(old_data));
+#else /* Do not chase memcpy on archs where unaligned address do not throw SIGBUS */
old_data = *(void **)(value.dptr);
+#endif
TALLOC_FREE(old_data);
if (data == NULL) {
status = dbwrap_record_delete(rec);
@@ -138,6 +142,7 @@
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 +150,14 @@
if (value.dsize != sizeof(void *)) {
return -1;
}
+
+#if defined(__SUNPRO_C) && (defined(__sparcv9) && defined(_LP64))
+ memcpy(&p, value.dptr, sizeof(p));
+#else /* Do not chase memcpy on archs where unaligned address do not throw SIGBUS */
+ p = *(void **)(value.dptr);
+#endif
return state->fn(data_blob_const(key.dptr, key.dsize),
- *(void **)value.dptr, state->private_data);
+ p, state->private_data);
}
/*