summaryrefslogtreecommitdiff
path: root/node.c
diff options
context:
space:
mode:
Diffstat (limited to 'node.c')
-rw-r--r--node.c19
1 files changed, 3 insertions, 16 deletions
diff --git a/node.c b/node.c
index ad1f74569..5dff209f1 100644
--- a/node.c
+++ b/node.c
@@ -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;
}