diff options
Diffstat (limited to 'sunrpc/rpc_main.c')
-rw-r--r-- | sunrpc/rpc_main.c | 48 |
1 files changed, 32 insertions, 16 deletions
diff --git a/sunrpc/rpc_main.c b/sunrpc/rpc_main.c index fee83514d1..954657a7e4 100644 --- a/sunrpc/rpc_main.c +++ b/sunrpc/rpc_main.c @@ -31,10 +31,6 @@ /* * From @(#)rpc_main.c 1.30 89/03/30 (C) 1987 SMI; */ -#if defined(LIBC_SCCS) && !defined(lint) -static const char main_rcsid[] = - "$Id$"; -#endif /* * rpc_main.c, Top level of the RPC protocol compiler. @@ -535,7 +531,7 @@ generate_guard (const char *pathname) filename = strrchr (pathname, '/'); /* find last component */ filename = ((filename == NULL) ? pathname : filename + 1); - guard = strdup (filename); + guard = extendfile (filename, "_H_RPCGEN"); /* convert to upper case */ tmp = guard; while (*tmp) @@ -545,7 +541,6 @@ generate_guard (const char *pathname) tmp++; } - guard = extendfile (guard, "_H_RPCGEN"); return guard; } @@ -665,6 +660,7 @@ h_output (const char *infile, const char *define, int extend, } fprintf (fout, "\n#endif /* !_%s */\n", guard); + free (guard); close_input (); close_output (outfilename); } @@ -695,11 +691,9 @@ s_output (int argc, const char *argv[], const char *infile, const char *define, fprintf (fout, "#include <stdio.h>\n"); fprintf (fout, "#include <stdlib.h>\n"); + fprintf (fout, "#include <rpc/pmap_clnt.h>\n"); if (Cflag) - { - fprintf (fout, "#include <rpc/pmap_clnt.h>\n"); - fprintf (fout, "#include <string.h>\n"); - } + fprintf (fout, "#include <string.h>\n"); if (strcmp (svcclosetime, "-1") == 0) indefinitewait = 1; else if (strcmp (svcclosetime, "0") == 0) @@ -952,6 +946,8 @@ clnt_output (const char *infile, const char *define, int extend, close_output (outfilename); } +static const char space[] = " "; + static char * file_name (const char *file, const char *ext) { @@ -960,16 +956,17 @@ file_name (const char *file, const char *ext) if (access (temp, F_OK) != -1) return (temp); - else - return ((char *) " "); + + free (temp); + return (char *) space; } static void mkfile_output (struct commandline *cmd) { char *mkfilename; - const char *clientname, *clntname, *xdrname, *hdrname; - const char *servername, *svcname, *servprogname, *clntprogname; + char *clientname, *clntname, *xdrname, *hdrname; + char *servername, *svcname, *servprogname, *clntprogname; svcname = file_name (cmd->infile, "_svc.c"); clntname = file_name (cmd->infile, "_clnt.c"); @@ -983,8 +980,8 @@ mkfile_output (struct commandline *cmd) } else { - servername = " "; - clientname = " "; + servername = (char *) space; + clientname = (char *) space; } servprogname = extendfile (cmd->infile, "_server"); clntprogname = extendfile (cmd->infile, "_client"); @@ -994,6 +991,8 @@ mkfile_output (struct commandline *cmd) char *cp, *temp; mkfilename = alloc (strlen ("Makefile.") + strlen (cmd->infile) + 1); + if (mkfilename == NULL) + abort (); temp = rindex (cmd->infile, '.'); cp = stpcpy (mkfilename, "Makefile."); strncpy (cp, cmd->infile, (temp - cmd->infile)); @@ -1052,6 +1051,23 @@ $(LDLIBS) \n\n"); f_print (fout, "clean:\n\t $(RM) core $(TARGETS) $(OBJECTS_CLNT) \ $(OBJECTS_SVC) $(CLIENT) $(SERVER)\n\n"); close_output (mkfilename); + + free (clntprogname); + free (servprogname); + if (servername != space) + free (servername); + if (clientname != space) + free (clientname); + if (mkfilename != (char *) cmd->outfile) + free (mkfilename); + if (svcname != space) + free (svcname); + if (clntname != space) + free (clntname); + if (xdrname != space) + free (xdrname); + if (hdrname != space) + free (hdrname); } /* |