diff options
Diffstat (limited to 'sunrpc')
-rw-r--r-- | sunrpc/rpc_cout.c | 1 | ||||
-rw-r--r-- | sunrpc/rpc_main.c | 38 | ||||
-rw-r--r-- | sunrpc/rpc_parse.c | 1 | ||||
-rw-r--r-- | sunrpc/rpc_scan.c | 1 | ||||
-rw-r--r-- | sunrpc/svc_udp.c | 4 |
5 files changed, 37 insertions, 8 deletions
diff --git a/sunrpc/rpc_cout.c b/sunrpc/rpc_cout.c index dfc57fd277..21056e84a6 100644 --- a/sunrpc/rpc_cout.c +++ b/sunrpc/rpc_cout.c @@ -551,6 +551,7 @@ inline_struct (definition *def, int flag) } size = 0; i = 0; + free (sizestr); sizestr = NULL; print_stat (indent + 1, &dl->decl); } diff --git a/sunrpc/rpc_main.c b/sunrpc/rpc_main.c index 2679720a7f..954657a7e4 100644 --- a/sunrpc/rpc_main.c +++ b/sunrpc/rpc_main.c @@ -531,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) @@ -541,7 +541,6 @@ generate_guard (const char *pathname) tmp++; } - guard = extendfile (guard, "_H_RPCGEN"); return guard; } @@ -661,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); } @@ -946,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) { @@ -954,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"); @@ -977,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"); @@ -988,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)); @@ -1046,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); } /* diff --git a/sunrpc/rpc_parse.c b/sunrpc/rpc_parse.c index 2a29878d6a..9678f28140 100644 --- a/sunrpc/rpc_parse.c +++ b/sunrpc/rpc_parse.c @@ -91,6 +91,7 @@ get_definition (void) def_const (defp); break; case TOK_EOF: + free (defp); return (NULL); default: error ("definition keyword expected"); diff --git a/sunrpc/rpc_scan.c b/sunrpc/rpc_scan.c index 42ab2bae8b..af90ef6973 100644 --- a/sunrpc/rpc_scan.c +++ b/sunrpc/rpc_scan.c @@ -535,6 +535,7 @@ docppline (const char *line, int *lineno, const char **fname) *p = 0; if (*file == 0) { + free (file); *fname = NULL; } else diff --git a/sunrpc/svc_udp.c b/sunrpc/svc_udp.c index c0c115abeb..67b84f184f 100644 --- a/sunrpc/svc_udp.c +++ b/sunrpc/svc_udp.c @@ -485,6 +485,7 @@ svcudp_enablecache (SVCXPRT *transp, u_long size) uc->uc_entries = ALLOC (cache_ptr, size * SPARSENESS); if (uc->uc_entries == NULL) { + mem_free (uc, sizeof (struct udp_cache)); CACHE_PERROR (_("enablecache: could not allocate cache data")); return 0; } @@ -492,6 +493,8 @@ svcudp_enablecache (SVCXPRT *transp, u_long size) uc->uc_fifo = ALLOC (cache_ptr, size); if (uc->uc_fifo == NULL) { + mem_free (uc->uc_entries, size * SPARSENESS); + mem_free (uc, sizeof (struct udp_cache)); CACHE_PERROR (_("enablecache: could not allocate cache fifo")); return 0; } @@ -545,6 +548,7 @@ cache_set (SVCXPRT *xprt, u_long replylen) newbuf = mem_alloc (su->su_iosz); if (newbuf == NULL) { + mem_free (victim, sizeof (struct cache_node)); CACHE_PERROR (_("cache_set: could not allocate new rpc_buffer")); return; } |