mirror of https://gitee.com/openkylin/samba.git
use-bzero-instead-of-memset_s.diff
Subject: use bzero() instead of memset_s() lib/replace/replace.h header defines ZERO_STRUCT macro which uses memset_s() function (which is similar to memset() but can not be optimized out by the compiler). Glibc has bzero() with similar property, while memset_s() have is implemented in lib/replace/replace.c, - this way, some binaries needlessly link with libreplace-samba4 just to get rep_memset_s() symbol. By using bzero() instead, this endless linkage is eliminated, so we can package, for example, libldb (which uses ZERO_STRUCT) without it linking to libreplace-samba4. Note: actually using explicit_bzero() so it is not optimized out by the compiler - this is the original goal of using memset_s().
This commit is contained in:
parent
65ca6a9cff
commit
6396f3cc23
|
@ -819,7 +819,7 @@ typedef unsigned long long ptrdiff_t ;
|
|||
/**
|
||||
* Zero a structure.
|
||||
*/
|
||||
#define ZERO_STRUCT(x) memset_s((char *)&(x), sizeof(x), 0, sizeof(x))
|
||||
#define ZERO_STRUCT(x) explicit_bzero((char *)&(x), sizeof(x))
|
||||
|
||||
/**
|
||||
* Zero a structure given a pointer to the structure.
|
||||
|
|
Loading…
Reference in New Issue