diff options
author | James A. Morrison <a2morri@csclub.uwaterloo.ca> | 2002-04-16 01:39:20 +0000 |
---|---|---|
committer | James A. Morrison <a2morri@csclub.uwaterloo.ca> | 2002-04-16 01:39:20 +0000 |
commit | ea5e87f241d05d99cc376ea34d8105de8dc174c8 (patch) | |
tree | 4c40ffd681f2b5ecef110e5a54fdbba0c80b929c /node.c | |
parent | 0c89c0ac11a6eb86cafc363e74330b11c3b5841f (diff) |
* node.c (gopherfs_make_netnode): Try to free all allocations on
failure.
* Makefile: Remove dependancy on Makeconf
* Added the Changelog
Diffstat (limited to 'node.c')
-rw-r--r-- | node.c | 19 |
1 files changed, 3 insertions, 16 deletions
@@ -34,7 +34,6 @@ gopherfs_make_netnode (char type, char *name, char *selector, char *server, unsigned short port) { struct netnode *nn; - int err; nn = (struct netnode *) malloc (sizeof (struct netnode)); if (!nn) @@ -42,34 +41,22 @@ gopherfs_make_netnode (char type, char *name, char *selector, memset (nn, 0, sizeof (struct netnode)); nn->type = type; nn->name = strdup (name); - if (! nn->name) - err = 1; nn->selector = strdup (selector); - if (! nn->selector) - err = 2; nn->server = strdup (server); - if (! nn->server) - err = 3; nn->port = port; nn->ents = NULL; nn->noents = FALSE; /* XXX init cache references */ - switch (err) - { - case 4: + if (!(nn->server && nn->selector && nn->name)) + { /* We are allowed to free NULL pointers */ free (nn->server); - case 3: free (nn->selector); - case 2: free (nn->name); - case 1: free (nn); - case 0: return NULL; - default: - return nn; } + return nn; } |