aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2006-05-10 06:39:15 +0000
committerUlrich Drepper <drepper@redhat.com>2006-05-10 06:39:15 +0000
commit400cc70af5972a50618702da02d18aee845ce542 (patch)
tree5aec81730804ff70928434f12d9ffa3dc0954c13
parent51e5926049360b991d71862e33a97fe1ead4d9a6 (diff)
downloadglibc-400cc70af5972a50618702da02d18aee845ce542.zip
glibc-400cc70af5972a50618702da02d18aee845ce542.tar.gz
glibc-400cc70af5972a50618702da02d18aee845ce542.tar.bz2
* io/ftw.c (open_dir_stream): Return right away if REALLOC fails.
[Coverity CID 229, 230] * argp/argp-help.c (hol_entry_help): Handle STATE==NULL in ARG and DGETTEXT calls. (hol_help): Likewise. [Coverity CID 226, 227] * string/argz-replace.c (__argz_replace): Unconditionally call free on SRC. [Coverity CID 225] * nis/nis_creategroup.c (nis_creategroup): No need to duplicate the return value of __nis_default_owner and __nis_default_group, it has been especially allocated. [Coverity CID 224]
-rw-r--r--ChangeLog14
-rw-r--r--argp/argp-help.c16
-rw-r--r--io/ftw.c3
-rw-r--r--nis/nis_creategroup.c4
-rw-r--r--string/argz-replace.c5
5 files changed, 30 insertions, 12 deletions
diff --git a/ChangeLog b/ChangeLog
index a04f97b..feb50d1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,19 @@
2006-05-09 Ulrich Drepper <drepper@redhat.com>
+ * io/ftw.c (open_dir_stream): Return right away if REALLOC fails.
+ [Coverity CID 229, 230]
+
+ * argp/argp-help.c (hol_entry_help): Handle STATE==NULL in ARG and
+ DGETTEXT calls.
+ (hol_help): Likewise. [Coverity CID 226, 227]
+
+ * string/argz-replace.c (__argz_replace): Unconditionally call
+ free on SRC. [Coverity CID 225]
+
+ * nis/nis_creategroup.c (nis_creategroup): No need to duplicate
+ the return value of __nis_default_owner and __nis_default_group,
+ it has been especially allocated. [Coverity CID 224]
+
* nis/nis_defaults.c (searchXYX): New functions. Used by both
searchgroup and searchowner. Significantly simplified.
(__nis_default_owner): Remove duplication. Do not locally copy the
diff --git a/argp/argp-help.c b/argp/argp-help.c
index 7ba621b..13c0820 100644
--- a/argp/argp-help.c
+++ b/argp/argp-help.c
@@ -1105,7 +1105,9 @@ hol_entry_help (struct hol_entry *entry, const struct argp_state *state,
__argp_fmtstream_putc (stream, '-');
__argp_fmtstream_putc (stream, *so);
if (!have_long_opt || uparams.dup_args)
- arg (real, " %s", "[%s]", state->root_argp->argp_domain, stream);
+ arg (real, " %s", "[%s]",
+ state == NULL ? NULL : state->root_argp->argp_domain,
+ stream);
else if (real->arg)
hhstate->suppressed_dup_arg = 1;
}
@@ -1125,7 +1127,8 @@ hol_entry_help (struct hol_entry *entry, const struct argp_state *state,
have been done on the original; but documentation options
should be pretty rare anyway... */
__argp_fmtstream_puts (stream,
- dgettext (state->root_argp->argp_domain,
+ dgettext (state == NULL ? NULL
+ : state->root_argp->argp_domain,
opt->name));
}
}
@@ -1138,7 +1141,8 @@ hol_entry_help (struct hol_entry *entry, const struct argp_state *state,
{
comma (uparams.long_opt_col, &pest);
__argp_fmtstream_printf (stream, "--%s", opt->name);
- arg (real, "=%s", "[=%s]", state->root_argp->argp_domain, stream);
+ arg (real, "=%s", "[=%s]",
+ state == NULL ? NULL : state->root_argp->argp_domain, stream);
}
}
@@ -1157,7 +1161,8 @@ hol_entry_help (struct hol_entry *entry, const struct argp_state *state,
}
else
{
- const char *tstr = real->doc ? dgettext (state->root_argp->argp_domain,
+ const char *tstr = real->doc ? dgettext (state == NULL ? NULL
+ : state->root_argp->argp_domain,
real->doc) : 0;
const char *fstr = filter_doc (tstr, real->key, entry->argp, state);
if (fstr && *fstr)
@@ -1205,7 +1210,8 @@ hol_help (struct hol *hol, const struct argp_state *state,
if (hhstate.suppressed_dup_arg && uparams.dup_args_note)
{
- const char *tstr = dgettext (state->root_argp->argp_domain, "\
+ const char *tstr = dgettext (state == NULL ? NULL
+ : state->root_argp->argp_domain, "\
Mandatory or optional arguments to long options are also mandatory or \
optional for any corresponding short options.");
const char *fstr = filter_doc (tstr, ARGP_KEY_HELP_DUP_ARGS_NOTE,
diff --git a/io/ftw.c b/io/ftw.c
index 5c339a0..4138717 100644
--- a/io/ftw.c
+++ b/io/ftw.c
@@ -301,8 +301,7 @@ open_dir_stream (int *dfdp, struct ftw_data *data, struct dir_data *dirp)
int save_err = errno;
free (buf);
__set_errno (save_err);
- result = -1;
- break;
+ return -1;
}
buf = newp;
}
diff --git a/nis/nis_creategroup.c b/nis/nis_creategroup.c
index a7808ab..0e9e13d 100644
--- a/nis/nis_creategroup.c
+++ b/nis/nis_creategroup.c
@@ -52,8 +52,8 @@ nis_creategroup (const_nis_name group, unsigned int flags)
obj->zo_oid.ctime = obj->zo_oid.mtime = time (NULL);
obj->zo_name = strdup (leafbuf);
- obj->zo_owner = strdup (__nis_default_owner (NULL));
- obj->zo_group = strdup (__nis_default_group (NULL));
+ obj->zo_owner = __nis_default_owner (NULL);
+ obj->zo_group = __nis_default_group (NULL);
obj->zo_domain = strdup (domainbuf);
if (obj->zo_name == NULL || obj->zo_owner == NULL
|| obj->zo_group == NULL || obj->zo_domain == NULL)
diff --git a/string/argz-replace.c b/string/argz-replace.c
index 3c40624..1b0eb15 100644
--- a/string/argz-replace.c
+++ b/string/argz-replace.c
@@ -1,5 +1,5 @@
/* String replacement in an argz vector
- Copyright (C) 1997, 1998 Free Software Foundation, Inc.
+ Copyright (C) 1997, 1998, 2006 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Miles Bader <miles@gnu.ai.mit.edu>
@@ -121,8 +121,7 @@ __argz_replace (char **argz, size_t *argz_len, const char *str, const char *with
if (! delayed_copy)
/* We never found any instances of str. */
{
- if (src)
- free (src);
+ free (src);
*argz = dst;
*argz_len = dst_len;
}