git.asbjorn.biz
/
debian
/
dhcpd-pools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
shared network names to be dynamically allocated
[debian/dhcpd-pools.git]
/
src
/
other.c
diff --git
a/src/other.c
b/src/other.c
index
d8f9ac4
..
4a9730b
100644
(file)
--- a/
src/other.c
+++ b/
src/other.c
@@
-41,7
+41,6
@@
extern char *malloc();
void *safe_malloc(const size_t size)
{
void *ret = malloc(size);
void *safe_malloc(const size_t size)
{
void *ret = malloc(size);
-
if (ret == NULL) {
err(EXIT_FAILURE,
"safe_malloc: cannot allocate %lu bytes: ", size);
if (ret == NULL) {
err(EXIT_FAILURE,
"safe_malloc: cannot allocate %lu bytes: ", size);
@@
-50,6
+49,17
@@
void *safe_malloc(const size_t size)
return ret;
}
return ret;
}
+/* Simple memory reallocation wrapper */
+void *safe_realloc(void *ptr, const size_t size)
+{
+ void *ret = realloc(ptr, size);
+
+ if (!ret && size)
+ err(EXIT_FAILURE,
+ "safe_realloc: cannot allocate %zu bytes", size);
+ return ret;
+}
+
/* Simple strdup wrapper */
char *safe_strdup(const char *str)
{
/* Simple strdup wrapper */
char *safe_strdup(const char *str)
{
@@
-75,25
+85,22
@@
void flip_ranges(struct range_t *ranges, struct range_t *tmp_ranges)
/* Free memory, flush buffers etc */
void clean_up(void)
{
/* Free memory, flush buffers etc */
void clean_up(void)
{
- int ret;
+ unsigned int i;
/* Just in case there something in buffers */
/* Just in case there something in buffers */
- ret = fflush(stdout);
- if (errno || ret) {
- warn("clean_up: stdout");
+ if (fflush(NULL)) {
+ warn("clean_up: fflush");
}
}
- ret = fflush(stderr);
- if (errno || ret) {
- warn("clean_up: stderr");
+ num_shared_networks++;
+ for (i = 0; i < num_shared_networks; i++) {
+ free((shared_networks + i)->name);
}
}
-
free(config.dhcpdconf_file);
free(config.dhcpdlease_file);
free(config.output_file);
free(ranges);
free(leases);
free(touches);
free(config.dhcpdconf_file);
free(config.dhcpdlease_file);
free(config.output_file);
free(ranges);
free(leases);
free(touches);
- free(shared_net_names);
free(shared_networks);
}
free(shared_networks);
}
@@
-108,7
+115,7
@@
void print_version(void)
"This is free software: you are free to change and redistribute it.\n");
fprintf(stdout,
"There is NO WARRANTY, to the extent permitted by law.\n");
"This is free software: you are free to change and redistribute it.\n");
fprintf(stdout,
"There is NO WARRANTY, to the extent permitted by law.\n");
- exit(EXIT_SUCCESS);
+ exit(EXIT_SUCCESS);
}
void usage(int status)
}
void usage(int status)