aboutsummaryrefslogtreecommitdiff
path: root/sunrpc
diff options
context:
space:
mode:
Diffstat (limited to 'sunrpc')
-rw-r--r--sunrpc/rpc_cout.c1
-rw-r--r--sunrpc/rpc_main.c38
-rw-r--r--sunrpc/rpc_parse.c1
-rw-r--r--sunrpc/rpc_scan.c1
-rw-r--r--sunrpc/svc_udp.c4
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;
}