Server IP : 172.67.216.182 / Your IP : 108.162.226.115 Web Server : Apache System : Linux krdc-ubuntu-s-2vcpu-4gb-amd-blr1-01.localdomain 5.15.0-142-generic #152-Ubuntu SMP Mon May 19 10:54:31 UTC 2025 x86_64 User : www ( 1000) PHP Version : 7.4.33 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /usr/include/gssapi/ |
Upload File : |
/* -*- mode: c; c-basic-offset: 4; indent-tabs-mode: nil -*- */ /* To the extent possible under law, Painless Security, LLC has waived * all copyright and related or neighboring rights to GSS-API Memory * Management Header. This work is published from: United States. */ #ifndef GSSAPI_ALLOC_H #define GSSAPI_ALLOC_H #ifdef _WIN32 #include "winbase.h" #endif #include <string.h> #if defined(_WIN32) static inline void gssalloc_free(void *value) { if (value) HeapFree(GetProcessHeap(), 0, value); } static inline void * gssalloc_malloc(size_t size) { return HeapAlloc(GetProcessHeap(), 0, size); } static inline void * gssalloc_calloc(size_t count, size_t size) { return HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, count * size); } static inline void * gssalloc_realloc(void *value, size_t size) { /* Unlike realloc(), HeapReAlloc() does not work on null values. */ if (value == NULL) return HeapAlloc(GetProcessHeap(), 0, size); return HeapReAlloc(GetProcessHeap(), 0, value, size); } #elif defined(DEBUG_GSSALLOC) /* Be deliberately incompatible with malloc and free, to allow us to detect * mismatched malloc/gssalloc usage on Unix. */ static inline void gssalloc_free(void *value) { char *p = (char *)value - 8; if (value == NULL) return; if (memcmp(p, "gssalloc", 8) != 0) abort(); free(p); } static inline void * gssalloc_malloc(size_t size) { char *p = calloc(size + 8, 1); memcpy(p, "gssalloc", 8); return p + 8; } static inline void * gssalloc_calloc(size_t count, size_t size) { return gssalloc_malloc(count * size); } static inline void * gssalloc_realloc(void *value, size_t size) { char *p = (char *)value - 8; if (value == NULL) return gssalloc_malloc(size); if (memcmp(p, "gssalloc", 8) != 0) abort(); return (char *)realloc(p, size + 8) + 8; } #else /* not _WIN32 or DEBUG_GSSALLOC */ /* Normal Unix case, just use free/malloc/calloc/realloc. */ static inline void gssalloc_free(void *value) { free(value); } static inline void * gssalloc_malloc(size_t size) { return malloc(size); } static inline void * gssalloc_calloc(size_t count, size_t size) { return calloc(count, size); } static inline void * gssalloc_realloc(void *value, size_t size) { return realloc(value, size); } #endif /* not _WIN32 or DEBUG_GSSALLOC */ static inline char * gssalloc_strdup(const char *str) { size_t size = strlen(str)+1; char *copy = gssalloc_malloc(size); if (copy) { memcpy(copy, str, size); copy[size-1] = '\0'; } return copy; } #endif