GNUnet 0.21.2
common_allocation.c File Reference

wrapper around malloc/free More...

#include "platform.h"
#include "gnunet_util_lib.h"
Include dependency graph for common_allocation.c:

Go to the source code of this file.

Macros

#define LOG(kind, ...)    GNUNET_log_from (kind, "util-common-allocation", __VA_ARGS__)
 
#define LOG_STRERROR(kind, syscall)    GNUNET_log_from_strerror (kind, "util-common-allocation", syscall)
 
#define INT_MAX   0x7FFFFFFF
 
#define BAADFOOD_STR   "\x0D\xF0\xAD\xBA"
 
#define BAADFOOD_STR   "\xBA\xAD\xF0\x0D"
 

Functions

void * GNUNET_xmalloc_ (size_t size, const char *filename, int linenumber)
 Allocate memory. More...
 
void ** GNUNET_xnew_array_2d_ (size_t n, size_t m, size_t elementSize, const char *filename, int linenumber)
 Allocate memory for a two dimensional array in one block and set up pointers. More...
 
void *** GNUNET_xnew_array_3d_ (size_t n, size_t m, size_t o, size_t elementSize, const char *filename, int linenumber)
 Allocate memory for a three dimensional array in one block and set up pointers. More...
 
void * GNUNET_xmemdup_ (const void *buf, size_t size, const char *filename, int linenumber)
 Allocate and initialize memory. More...
 
void * GNUNET_xmalloc_unchecked_ (size_t size, const char *filename, int linenumber)
 Allocate memory. More...
 
void * GNUNET_xrealloc_ (void *ptr, size_t n, const char *filename, int linenumber)
 Reallocate memory. More...
 
void GNUNET_xfree_ (void *ptr, const char *filename, int linenumber)
 Free memory. More...
 
char * GNUNET_xstrdup_ (const char *str, const char *filename, int linenumber)
 Dup a string. More...
 
static size_t strnlen (const char *s, size_t n)
 
char * GNUNET_xstrndup_ (const char *str, size_t len, const char *filename, int linenumber)
 Dup partially a string. More...
 
void GNUNET_xgrow_ (void **old, size_t elementSize, unsigned int *oldCount, unsigned int newCount, const char *filename, int linenumber)
 Grow an array, the new elements are zeroed out. More...
 
int GNUNET_asprintf (char **buf, const char *format,...)
 
int GNUNET_snprintf (char *buf, size_t size, const char *format,...)
 
struct GNUNET_MessageHeaderGNUNET_copy_message (const struct GNUNET_MessageHeader *msg)
 Create a copy of the given message. More...
 
bool GNUNET_is_zero_ (const void *a, size_t n)
 Check that memory in a is all zeros. More...
 

Detailed Description

wrapper around malloc/free

Author
Christian Grothoff

Definition in file common_allocation.c.

Macro Definition Documentation

◆ LOG

#define LOG (   kind,
  ... 
)     GNUNET_log_from (kind, "util-common-allocation", __VA_ARGS__)

Definition at line 36 of file common_allocation.c.

◆ LOG_STRERROR

#define LOG_STRERROR (   kind,
  syscall 
)     GNUNET_log_from_strerror (kind, "util-common-allocation", syscall)

Definition at line 39 of file common_allocation.c.

◆ INT_MAX

#define INT_MAX   0x7FFFFFFF

Definition at line 43 of file common_allocation.c.

◆ BAADFOOD_STR [1/2]

#define BAADFOOD_STR   "\x0D\xF0\xAD\xBA"

Definition at line 222 of file common_allocation.c.

◆ BAADFOOD_STR [2/2]

#define BAADFOOD_STR   "\xBA\xAD\xF0\x0D"

Definition at line 222 of file common_allocation.c.

Function Documentation

◆ strnlen()

static size_t strnlen ( const char *  s,
size_t  n 
)
static

Definition at line 281 of file common_allocation.c.

283{
284 const char *e;
285
286 e = memchr (s,
287 '\0',
288 n);
289 if (NULL == e)
290 return n;
291 return e - s;
292}

Referenced by GNUNET_strlcpy(), GNUNET_xstrndup_(), and handle_gns_resolution_result().

Here is the caller graph for this function:

◆ GNUNET_asprintf()

int GNUNET_asprintf ( char **  buf,
const char *  format,
  ... 
)

Definition at line 364 of file common_allocation.c.

367{
368 int ret;
369 va_list args;
370
371 va_start (args,
372 format);
373 ret = vsnprintf (NULL,
374 0,
375 format,
376 args);
377 va_end (args);
378 GNUNET_assert (ret >= 0);
379 *buf = GNUNET_malloc (ret + 1);
380 va_start (args, format);
381 ret = vsprintf (*buf,
382 format,
383 args);
384 va_end (args);
385 return ret;
386}
static int ret
Final status code.
Definition: gnunet-arm.c:94
#define GNUNET_assert(cond)
Use this for fatal errors that cannot be handled.
#define GNUNET_malloc(size)
Wrapper around malloc.

References consensus-simulation::args, GNUNET_assert, GNUNET_malloc, and ret.

◆ GNUNET_snprintf()

int GNUNET_snprintf ( char *  buf,
size_t  size,
const char *  format,
  ... 
)

Definition at line 390 of file common_allocation.c.

394{
395 int ret;
396 va_list args;
397
398 va_start (args,
399 format);
400 ret = vsnprintf (buf,
401 size,
402 format,
403 args);
404 va_end (args);
405 GNUNET_assert ((ret >= 0) && (((size_t) ret) < size));
406 return ret;
407}
static unsigned int size
Size of the "table".
Definition: peer.c:68

References consensus-simulation::args, GNUNET_assert, ret, and size.