diff options
author | Ulrich Drepper <drepper@redhat.com> | 2006-04-07 04:29:25 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2006-04-07 04:29:25 +0000 |
commit | 0292b0dd6c85436fb10df5a77bde53ad4c298a6b (patch) | |
tree | fae98fcd869f6299579f9e8948c2753894d0ed39 /sunrpc | |
parent | 6738b3c073c6b8f0ad145d77ba61fc1238256f8d (diff) | |
download | glibc-0292b0dd6c85436fb10df5a77bde53ad4c298a6b.tar.gz glibc-0292b0dd6c85436fb10df5a77bde53ad4c298a6b.tar.xz glibc-0292b0dd6c85436fb10df5a77bde53ad4c298a6b.zip |
* libio/fmemopen.c (fmemopen): Free stream memory in case of
invalid length [Coverity CID 106]. * nss/nss_files/files-key.c (search): Close stream before successful return [Coverity CID 107]. * io/fts.c (fts_open): Don't allocate parent if *argv==NULL [Coverity CID 108]. * sunrpc/rpc_cout.c (inline_struct): Free sizestr after use [Coverity CID 110, 109]. * sunrpc/rpc_scan.c (docppline): Free file string if it is not going to be used [Coverity CID 111]. * sysdeps/unix/sysv/linux/getsourcefilter.c (getsourcefilter): Free memory if socket level value cannot be retrieved [Coverity CID 112]. * nis/nis_clone_dir.c (nis_clone_directory): Free all memory in error case [Coverity CID 114]. * nis/nis_clone_res.c (nis_clone_result): Free all memory in the error cases [Coverity CID 115]. * sunrpc/rpc_parse.c (get_definition): Free defp if tok == TOK_EOF [Coverity CID 116]. * sysdeps/unix/sysv/linux/setsourcefilter.c (setsourcefilter): Free memory if socket level value cannot be retrieved [Coverity CID 117]. * elf/cache.c (save_cache): Initialize pad to avoid writing uninitialized data to disk. * elf/cache.c (save_cache): Free file_entries_new [Coverity CID 118]. * intl/finddomain.c (_nl_find_domain): Avoid strdup of expand locale name, use strdupa. Remove free call [Coverity CID 119]. * sunrpc/rpc_main.c (generate_guard): Avoid extra allocation and the resulting leak [Coverity CID 121]. * sunrpc/rpc_main.c (mkfile_output): Free all allocated memory [Coverity CID 122]. * sunrpc/rpc_main.c (h_output): Free guard after we are done [Coverity CID 123]. * sunrpc/svc_udp.c (cache_set): Free victim if newbuf allocation fails [Coverity CID 126]. * sunrpc/svc_udp.c (svcudp_enablecache): Free memory in error cases [Coverity CID 127]. * nis/nis_table.c (__create_ib_request): Free ibreq in case strdup fails [Coverity CID 128]. * nis/nis_getservlist.c (nis_getservlist): Free all memory in case of an error [Coverity CID 130, 129]. * nis/nis_print_group_entry.c (nis_print_group_entry): If nis_lookup call failed, return. Free lookup result in error cases [Coverity CID 131]. * nis/nis_removemember.c (nis_removemember): Free all memory in error cases [Coverity CID 132]. * nis/nss_nisplus/nisplus-alias.c (_nss_nisplus_getaliasbyname_r): Always free lookup result [Coverity CID 134]. * nis/nss_nisplus/nisplus-ethers.c (_nss_nisplus_gethostton_r): Always free lookup result [Coverity CID 135]. * nis/nss_nisplus/nisplus-ethers.c (_nss_nisplus_getntohost_r): Always free lookup result [Coverity CID 136]. * nis/nss_nisplus/nisplus-network.c (_nss_nisplus_getnetbyaddr_r): Before retrying, free old result [Coverity CID 137]. * nis/nss_nisplus/nisplus-publickey.c (_nss_nisplus_netname2user): Free res in case UID is zero [Coverity CID 138]. * nis/ypclnt.c (yp_update): Always free master string [Coverity CID 140]. * nis/nis_creategroup.c (nis_creategroup): Free all memory in error cases [Coverity CID 143, 142, 141]. * nis/nss_nis/nis-publickey.c (_nss_nis_getpublickey): Free result if yp_match call succeeded [Coverity CID 155]. * nis/nss_nis/nis-publickey.c (_nss_nis_getsecretkey): Free string allocated in yp_match at all times [Coverity CID 157, 156]. * nscd/nscd.c (write_pid): Close stream also if writing failed [Coverity CID 165]. * nis/nis_table.c (nis_add_entry): Move test for NULL parameter ahead of first use [Coverity CID 167]. * nis/nss_nis/nis-alias.c (_nss_nis_getaliasbyname_r): Move test for NULL parameter ahead of first use [Coverity CID 168]. * intl/finddomain.c (_nl_find_domain): We never return NULL if we found the locale [Coverity CID 169]. * inet/getnameinfo.c (getnameinfo): __getservbyport_r does not set herrno [Coverity CID 178]. * nis/nis_checkpoint.c (nis_checkpoint): Don't access and returned freed object [Coverity CID 182].
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; } |