commit caa81f4353ffccb71cbf790afb4366c143a8b28c
Author: Jim Meyering <meyering(a)redhat.com>
Date: Wed Mar 30 20:34:32 2011 +0200
don't segfault upon ignored meta_get_value failure
This legitimate bug was highlighted by a
"variable 'rc' set but not used" compiler warning.
* rest.c (recheck_replication): Rather than ignoring meta_get_value
failure, which could probably lead to a segfault, diagnose it and
return early.
rest.c | 19 +++++++++++++------
1 files changed, 13 insertions(+), 6 deletions(-)
---
diff --git a/rest.c b/rest.c
index 3dfea2b..41acc53 100644
--- a/rest.c
+++ b/rest.c
@@ -358,10 +358,8 @@ proxy_get_data (void *cctx, struct MHD_Connection *conn, const char
*url,
}
static void
-recheck_replication (my_state * ms, char *policy)
+recheck_replication (my_state *ms, char *policy)
{
- int rc; /* FIXME: set but never used */
-
if (is_reserved(ms->key,reserved_name)) {
DPRINTF("declining to replicate reserved object %s\n",ms->key);
return;
@@ -374,13 +372,22 @@ recheck_replication (my_state * ms, char *policy)
if (!policy) {
DPRINTF("fetching policy for %s/%s\n",ms->bucket,ms->key);
- rc = meta_get_value(ms->bucket,ms->key, "_policy", &policy);
+ int rc = meta_get_value(ms->bucket,ms->key, "_policy", &policy);
+ if (rc) {
+ error (0, rc, _("failed to get policy for %s/%s"),
+ ms->bucket,ms->key);
+ return;
+ }
}
if (!policy) {
DPRINTF(" inheriting policy from %s\n",ms->bucket);
- rc = meta_get_value(ms->bucket,
- "_default", "_policy", &policy);
+ int rc = meta_get_value(ms->bucket, "_default",
+ "_policy", &policy);
+ if (rc) {
+ error (0, rc, _("failed to get default policy"));
+ return;
+ }
}
if (policy) {
Show replies by date