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 | |
parent | 0c89c0ac11a6eb86cafc363e74330b11c3b5841f (diff) |
* node.c (gopherfs_make_netnode): Try to free all allocations on
failure.
* Makefile: Remove dependancy on Makeconf
* Added the Changelog
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | Makefile | 18 | ||||
-rw-r--r-- | node.c | 19 |
3 files changed, 22 insertions, 21 deletions
diff --git a/ChangeLog b/ChangeLog new file mode 100644 index 000000000..ad1537729 --- /dev/null +++ b/ChangeLog @@ -0,0 +1,6 @@ +2002-04-15 James A. Morrison <ja2morri@uwaterloo.ca> + + * node.c (gopherfs_make_netnode): Try to free all allocations on + failure. + * Makefile: Remove dependancy on Makeconf + @@ -1,5 +1,6 @@ # Makefile for gopherfs # +# Copyright (C) 2002 James A. Morrison # Copyright (C) 1997, 2000 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or @@ -21,13 +22,20 @@ makemode := server target = gopherfs -#SRCS = ftpfs.c fs.c host.c netfs.c dir.c conn.c ccache.c node.c ncache.c +CC = gcc +CFLAGS = -Wall -g -D_GNU_SOURCE +INCLUDES = -I. SRCS = gopherfs.c args.c netfs.c gopher.c node.c -#LCLHDRS = ftpfs.h ccache.h LCLHDRS = gopherfs.h OBJS = $(SRCS:.c=.o) -#HURDLIBS = netfs fshelp iohelp threads ports ihash ftpconn shouldbeinlibc -HURDLIBS = netfs fshelp iohelp ports +HURDLIBS = -lnetfs -lfshelp -liohelp -lports + +all: $(target) + +$(target): $(OBJS) + $(CC) $(CFLAGS) -o $(target) $(OBJS) $(HURDLIBS) + +%.o: %.c $(LCLHDRS) + $(CC) $(CFLAGS) $(INCLUDES) -o $@ -c $< -include ../Makeconf @@ -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; } |