Current Path: > > usr > include > gssapi
Operation : Linux premium107.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64 Software : Apache Server IP : 198.54.126.246 | Your IP: 216.73.216.181 Domains : 1034 Domain(s) Permission : [ 0755 ]
| Name | Type | Size | Last Modified | Actions |
|---|---|---|---|---|
| gssapi.h | File | 29957 bytes | June 03 2025 02:06:27. | |
| gssapi_alloc.h | File | 2640 bytes | June 03 2025 02:06:27. | |
| gssapi_ext.h | File | 20915 bytes | June 03 2025 02:06:27. | |
| gssapi_generic.h | File | 2217 bytes | June 03 2025 02:06:27. | |
| gssapi_krb5.h | File | 11813 bytes | June 03 2025 02:06:27. | |
| mechglue.h | File | 1652 bytes | June 03 2025 02:06:27. |
/* -*- 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
SILENT KILLER Tool