poll
setproctitle
memset_explicit
-memset_s
Types:
bool
}
#endif
-#ifndef HAVE_MEMSET_S
-# ifndef RSIZE_MAX
-# define RSIZE_MAX (SIZE_MAX >> 1)
-# endif
-
-int rep_memset_s(void *dest, size_t destsz, int ch, size_t count)
-{
- if (dest == NULL) {
- return EINVAL;
- }
-
- if (destsz > RSIZE_MAX ||
- count > RSIZE_MAX ||
- count > destsz) {
- return ERANGE;
- }
-
-#if defined(HAVE_MEMSET_EXPLICIT)
- memset_explicit(dest, ch, count);
-#else /* HAVE_MEMSET_EXPLICIT */
- memset(dest, ch, count);
-# if defined(HAVE_GCC_VOLATILE_MEMORY_PROTECTION)
- /* See http://llvm.org/bugs/show_bug.cgi?id=15495 */
- __asm__ volatile("" : : "g"(dest) : "memory");
-# endif /* HAVE_GCC_VOLATILE_MEMORY_PROTECTION */
-#endif /* HAVE_MEMSET_EXPLICIT */
-
- return 0;
-}
-#endif /* HAVE_MEMSET_S */
-
#ifndef HAVE_GETPROGNAME
# ifndef HAVE_PROGRAM_INVOCATION_SHORT_NAME
# define PROGNAME_SIZE 32
void *rep_memset_explicit(void *block, int c, size_t size);
#endif
-#ifndef HAVE_MEMSET_S
-#define memset_s rep_memset_s
-int rep_memset_s(void *dest, size_t destsz, int ch, size_t count);
-#endif
-
#ifndef HAVE_GETPROGNAME
#define getprogname rep_getprogname
const char *rep_getprogname(void);
'utime', 'utimes', 'dup2', 'chown', 'link', 'readlink',
'symlink', 'lchown', 'realpath', 'memmem', 'vdprintf',
'dprintf', 'get_current_dir_name', 'copy_file_range',
- 'strerror_r', 'clock_gettime', 'memset_explicit', 'memset_s'],
+ 'strerror_r', 'clock_gettime', 'memset_explicit'],
'timegm.c': ['timegm'],
# Note: C99_VSNPRINTF is not a function, but a special condition
# for replacement
#define HAVE_SETEUID
#endif
-#ifndef HAVE_MEMSET_S
-#define HAVE_MEMSET_S
-#endif
-
#ifndef HAVE_DIRFD
#ifdef HAVE_DIR_DD_FD
#define dirfd(x) ((x)->dd_fd)
lib/roken/getuserinfo.c
'''
+ if not bld.CONFIG_SET('HAVE_MEMSET_S'):
+ ROKEN_SOURCE += '''
+ lib/roken/memset_s.c
+ '''
+
HEIMDAL_LIBRARY('roken',
ROKEN_SOURCE,
includes='../heimdal/lib/roken ../heimdal/include ../heimdal_build/include',