81 lines
1.6 KiB
C
81 lines
1.6 KiB
C
/*
|
||
* Copyright © 2008 by Eric Bishop <eric@gargoyle-router.com>
|
||
*
|
||
* This work ‘as-is’ we provide.
|
||
* No warranty, express or implied.
|
||
* We’ve done our best,
|
||
* to debug and test.
|
||
* Liability for damages denied.
|
||
*
|
||
* Permission is granted hereby,
|
||
* to copy, share, and modify.
|
||
* Use as is fit,
|
||
* free or for profit.
|
||
* On this notice these rights rely.
|
||
*
|
||
*
|
||
*
|
||
* Note that unlike other portions of Gargoyle this code
|
||
* does not fall under the GPL, but the rather whimsical
|
||
* 'Poetic License' above.
|
||
*
|
||
* Basically, this library contains a bunch of utilities
|
||
* that I find useful. I'm sure other libraries exist
|
||
* that are just as good or better, but I like these tools
|
||
* because I personally wrote them, so I know their quirks.
|
||
* (i.e. I know where the bodies are buried). I want to
|
||
* make sure that I can re-use these utilities for whatever
|
||
* code I may want to write in the future be it
|
||
* proprietary or open-source, so I've put them under
|
||
* a very, very permissive license.
|
||
*
|
||
* If you find this code useful, use it. If not, don't.
|
||
* I really don't care.
|
||
*
|
||
*/
|
||
|
||
#include "erics_tools.h"
|
||
|
||
void *safe_malloc(size_t size)
|
||
{
|
||
void* val = malloc(size);
|
||
if(val == NULL)
|
||
{
|
||
fprintf(stderr, "ERROR: MALLOC FAILURE!\n");
|
||
exit(1);
|
||
}
|
||
return val;
|
||
}
|
||
|
||
char* safe_strdup(const char* str)
|
||
{
|
||
char* new_str = NULL;
|
||
if(str != NULL)
|
||
{
|
||
new_str = strdup(str);
|
||
if(new_str == NULL)
|
||
{
|
||
fprintf(stderr, "ERROR: MALLOC FAILURE!\n");
|
||
exit(1);
|
||
}
|
||
}
|
||
return new_str;
|
||
}
|
||
|
||
|
||
void free_if_not_null(void* p)
|
||
{
|
||
if(p != NULL)
|
||
{
|
||
free(p);
|
||
}
|
||
}
|
||
void free_and_set_null(void** p)
|
||
{
|
||
if(*p != NULL)
|
||
{
|
||
free(*p);
|
||
*p = NULL;
|
||
}
|
||
}
|