[fedfs-utils] [PATCH 16/17] libnsdb: switch L_ERROR to D_GENERAL
Chuck Lever
chuck.lever at oracle.com
Thu Jan 2 12:29:10 PST 2014
As a general rule, libraries should not emit any error messages. A
library should depend on its consumer to present errors to users.
Remove log messages for memory allocation failures.
Signed-off-by: Chuck Lever <chuck.lever at oracle.com>
---
src/libnsdb/administrator.c | 27 +++++++----------------
src/libnsdb/annotation.c | 17 +++-----------
src/libnsdb/connsec.c | 4 +--
src/libnsdb/fileserver.c | 33 ++++++----------------------
src/libnsdb/ldap.c | 10 ++------
src/libnsdb/nsdb.c | 22 +++----------------
src/libnsdb/path.c | 51 ++++++++-----------------------------------
7 files changed, 34 insertions(+), 130 deletions(-)
diff --git a/src/libnsdb/administrator.c b/src/libnsdb/administrator.c
index 29a7a92..862cd38 100644
--- a/src/libnsdb/administrator.c
+++ b/src/libnsdb/administrator.c
@@ -184,10 +184,9 @@ nsdb_construct_fsn_dn(const char *nce, const char *fsn_uuid)
dn_len = strlen("fedfsFsnUuid=") + strlen(fsn_uuid) +
strlen(",") + strlen(nce) + 1;
dn = ber_memalloc(dn_len);
- if (dn == NULL) {
- xlog(D_GENERAL, "%s: No memory for DN", __func__);
+ if (dn == NULL)
return NULL;
- }
+
len = snprintf(dn, dn_len, "fedfsFsnUuid=%s,%s", fsn_uuid, nce);
if (len < 0 || (size_t)len > dn_len) {
xlog(D_GENERAL, "%s: DN is too long", __func__);
@@ -579,10 +578,9 @@ nsdb_construct_fsl_dn(const char *nce, const char *fsn_uuid, const char *fsl_uui
strlen("fedfsFsnUuid=") + strlen(fsn_uuid) + strlen(",") +
strlen(nce) + 1;
dn = ber_memalloc(dn_len);
- if (dn == NULL) {
- xlog(D_GENERAL, "%s: No memory for FSL DN", __func__);
+ if (dn == NULL)
return NULL;
- }
+
len = snprintf(dn, dn_len, "fedfsFslUuid=%s,fedfsFsnUuid=%s,%s",
fsl_uuid, fsn_uuid, nce);
if (len < 0 || (size_t)len > dn_len) {
@@ -652,10 +650,8 @@ nsdb_construct_nfsuri(const struct fedfs_nfs_fsl *nfsfsl, char **nfsuri)
len++;
result = (char *)calloc(len, sizeof(char));
- if (result == NULL) {
- xlog(D_GENERAL, "%s calloc failed", __func__);
+ if (result == NULL)
goto out;
- }
err = uriToStringA(result, &uri, len, NULL);
if (err != URI_SUCCESS) {
@@ -1229,10 +1225,8 @@ nsdb_create_nce_add_top_entry(nsdb_t host, char **dn)
len = strlen("o=fedfs");
nce = ber_memalloc(len);
- if (nce == NULL) {
- xlog(D_GENERAL, "%s: No memory for NCE DN", __func__);
+ if (nce == NULL)
return FEDFS_ERR_SVRFAULT;
- }
(void)sprintf(nce, "o=fedfs");
xlog(D_CALL, "%s: Using DN '%s'", __func__, nce);
@@ -1297,10 +1291,8 @@ nsdb_create_nce_add_entry(nsdb_t host, const char *parent, char **dn)
len = strlen("ou=fedfs,") + strlen(parent) + 1;
nce = ber_memalloc(len);
- if (nce == NULL) {
- xlog(D_GENERAL, "%s: No memory for NCE DN", __func__);
+ if (nce == NULL)
return FEDFS_ERR_SVRFAULT;
- }
(void)sprintf(nce, "ou=fedfs,%s", parent);
xlog(D_CALL, "%s: Using DN '%s'", __func__, nce);
@@ -1356,11 +1348,8 @@ nsdb_create_simple_nce_s(nsdb_t host, const char *parent, char **dn)
retval = FEDFS_OK;
if (dn != NULL) {
*dn = strdup(nce);
- if (*dn == NULL) {
- xlog(D_GENERAL, "%s: No memory for DN",
- __func__);
+ if (*dn == NULL)
retval = FEDFS_ERR_SVRFAULT;
- }
}
ber_memfree(nce);
return retval;
diff --git a/src/libnsdb/annotation.c b/src/libnsdb/annotation.c
index 6444122..8ad759b 100644
--- a/src/libnsdb/annotation.c
+++ b/src/libnsdb/annotation.c
@@ -115,11 +115,8 @@ nsdb_sanitize_annotation(const char *in, char **out)
/* Assume worst case: every input character must be escaped */
len = strlen(in);
result = malloc(len * 2 + 1);
- if (result == NULL) {
- xlog(D_GENERAL, "%s: Failed to allocate output buffer",
- __func__);
+ if (result == NULL)
return FEDFS_ERR_SVRFAULT;
- }
for (i = 0, j = 0; i < len; i++) {
/* escape as needed */
@@ -162,11 +159,8 @@ nsdb_construct_annotation(const char *keyword, const char *value,
/* Assume worst case: every input character must be escaped */
buf = malloc(strlen(keyword) * 2 + strlen(value) * 2 +
strlen("\"\" = \"\""));
- if (buf == NULL) {
- xlog(D_GENERAL, "%s: Failed to allocate output buffer",
- __func__);
+ if (buf == NULL)
return FEDFS_ERR_SVRFAULT;
- }
buf[0] = '\0';
strcat(buf, "\"");
@@ -317,15 +311,10 @@ nsdb_parse_annotation(const char *annotation, size_t len,
/* Made up value that will always be large enough */
tmpkey = calloc(1, len);
- if (tmpkey == NULL) {
- xlog(L_ERROR, "%s: Failed to allocate buffer for KEY",
- __func__);
+ if (tmpkey == NULL)
return FEDFS_ERR_SVRFAULT;
- }
tmpval = calloc(1, len);
if (tmpval == NULL) {
- xlog(L_ERROR, "%s: Failed to allocate buffer for KEY",
- __func__);
free(tmpkey);
return FEDFS_ERR_SVRFAULT;
}
diff --git a/src/libnsdb/connsec.c b/src/libnsdb/connsec.c
index 4b68c61..bb81eee 100644
--- a/src/libnsdb/connsec.c
+++ b/src/libnsdb/connsec.c
@@ -169,10 +169,8 @@ nsdb_connsec_read_bio_x509(const char *certfile, BIO *bio,
return retval;
buf = (unsigned char *)calloc(1, size);
- if (buf == NULL) {
- xlog(D_GENERAL, "%s: failed to allocate buffer", __func__);
+ if (buf == NULL)
return FEDFS_ERR_SVRFAULT;
- }
retval = nsdb_connsec_read_bio_x509_buf(certfile, bio, buf);
if (retval != FEDFS_OK) {
diff --git a/src/libnsdb/fileserver.c b/src/libnsdb/fileserver.c
index 7c96c4e..d1bb71a 100644
--- a/src/libnsdb/fileserver.c
+++ b/src/libnsdb/fileserver.c
@@ -314,7 +314,6 @@ nsdb_parse_ncedn_attribute(LDAP *ld, LDAPMessage *entry, char *attr,
tmp = strdup(values[0]->bv_val);
if (tmp == NULL) {
- xlog(L_ERROR, "%s: strdup(3) failed for %s", __func__, attr);
retval = FEDFS_ERR_SVRFAULT;
goto out_free;
}
@@ -480,11 +479,8 @@ nsdb_parse_ncedn(LDAP *ld, LDAPMessage *entry, char **dn)
}
*dn = strdup(tmp);
- if (*dn == NULL) {
- xlog(D_GENERAL, "%s: strdup failed",
- __func__);
+ if (*dn == NULL)
goto out;
- }
retval = FEDFS_OK;
@@ -838,17 +834,12 @@ nsdb_parse_annotations(struct berval **values, char ***annotations)
count = ldap_count_values_len(values);
tmp_annos = calloc(count + 1, sizeof(char *));
- if (tmp_annos == NULL) {
- xlog(D_GENERAL, "%s: no memory for annotations array",
- __func__);
+ if (tmp_annos == NULL)
return FEDFS_ERR_SVRFAULT;
- }
for (i = 0; i < count; i++) {
tmp_annos[i] = strndup(values[i]->bv_val, values[i]->bv_len);
if (tmp_annos[i] == NULL) {
- xlog(D_GENERAL, "%s: no memory for annotation",
- __func__);
nsdb_free_string_array(tmp_annos);
return FEDFS_ERR_SVRFAULT;
}
@@ -1111,10 +1102,8 @@ nsdb_resolve_fsn_parse_entry(LDAP *ld, LDAPMessage *entry,
xlog(D_CALL, "%s: parsing entry", __func__);
new = nsdb_alloc_fedfs_fsl();
- if (new == NULL) {
- xlog(L_ERROR, "%s: Failed to allocate new fsl", __func__);
+ if (new == NULL)
return FEDFS_ERR_SVRFAULT;
- }
dn = ldap_get_dn(ld, entry);
if (dn != NULL ) {
@@ -1174,10 +1163,8 @@ nsdb_resolve_fsn_find_entry_s(nsdb_t host, const char *nce, const char *fsn_uuid
char *filter;
filter = malloc(128);
- if (filter == NULL) {
- xlog(D_GENERAL, "%s: failed to allocate buffer", __func__);
+ if (filter == NULL)
return FEDFS_ERR_SVRFAULT;
- }
len = snprintf(filter, 127,
"(&(objectClass=fedfsFsl)(fedfsFsnUuid=%s))", fsn_uuid);
@@ -1424,10 +1411,8 @@ nsdb_get_fsn_parse_entry(LDAP *ld, LDAPMessage *entry,
xlog(D_CALL, "%s: parsing entry", __func__);
new = nsdb_alloc_fedfs_fsn();
- if (new == NULL) {
- xlog(L_ERROR, "%s: Failed to allocate new fsn", __func__);
+ if (new == NULL)
return FEDFS_ERR_SVRFAULT;
- }
dn = ldap_get_dn(ld, entry);
if (dn != NULL ) {
@@ -1488,10 +1473,8 @@ nsdb_get_fsn_find_entry_s(nsdb_t host, const char *nce, const char *fsn_uuid,
char *filter;
filter = malloc(128);
- if (filter == NULL) {
- xlog(D_GENERAL, "%s: failed to allocate buffer", __func__);
+ if (filter == NULL)
return FEDFS_ERR_SVRFAULT;
- }
len = snprintf(filter, 127,
"(&(objectClass=fedfsFsn)(fedfsFsnUuid=%s))", fsn_uuid);
@@ -2017,10 +2000,8 @@ nsdb_match_root_suffix(const char *entry, char **contexts,
found:
*context = strdup(contexts[i]);
- if (*context == NULL) {
- xlog(D_GENERAL, "%s: No memory", __func__);
+ if (*context == NULL)
return FEDFS_ERR_SVRFAULT;
- }
xlog(D_CALL, "%s: context='%s'", __func__, contexts[i]);
return FEDFS_OK;
diff --git a/src/libnsdb/ldap.c b/src/libnsdb/ldap.c
index 84a641c..03abeda 100644
--- a/src/libnsdb/ldap.c
+++ b/src/libnsdb/ldap.c
@@ -427,15 +427,12 @@ nsdb_parse_multivalue_str(char *attr, struct berval **values, char ***result)
count = ldap_count_values_len(values);
tmp = calloc(count + 1, sizeof(char *));
- if (tmp == NULL) {
- xlog(D_GENERAL, "%s: no memory for array", __func__);
+ if (tmp == NULL)
return FEDFS_ERR_SVRFAULT;
- }
for (i = 0; i < count; i++) {
tmp[i] = strdup(values[i]->bv_val);
if (tmp[i] == NULL) {
- xlog(D_GENERAL, "%s: no memory for string", __func__);
nsdb_free_string_array(tmp);
return FEDFS_ERR_SVRFAULT;
}
@@ -817,15 +814,12 @@ nsdb_copy_referrals_array(char **refs, char ***referrals)
count = i;
tmp = calloc(count, sizeof(char *));
- if (tmp == NULL) {
- xlog(D_GENERAL, "%s: no memory for array", __func__);
+ if (tmp == NULL)
return FEDFS_ERR_SVRFAULT;
- }
for (i = 0; i < count; i++) {
tmp[i] = strdup(refs[i]);
if (tmp[i] == NULL) {
- xlog(D_GENERAL, "%s: no memory for string", __func__);
nsdb_free_string_array(tmp);
return FEDFS_ERR_SVRFAULT;
}
diff --git a/src/libnsdb/nsdb.c b/src/libnsdb/nsdb.c
index 7320b05..d24df29 100644
--- a/src/libnsdb/nsdb.c
+++ b/src/libnsdb/nsdb.c
@@ -197,11 +197,8 @@ nsdb_create_private_certfile(char **pathbuf)
}
tmp = malloc(PATH_MAX);
- if (tmp == NULL) {
- xlog(D_GENERAL, "%s: failed to allocate pathname buffer",
- __func__);
+ if (tmp == NULL)
goto out;
- }
len = snprintf(tmp, PATH_MAX, "%s/nsdbXXXXXX.pem",
fedfs_nsdbcerts_dirname);
@@ -564,17 +561,12 @@ nsdb_new_nsdb(const char *hostname, const unsigned long port, nsdb_t *host)
port_tmp = port;
hostname_tmp = strdup(hostname);
- if (hostname_tmp == NULL) {
- xlog(D_GENERAL, "%s: Failed to allocate memory for nsdb object",
- __func__);
+ if (hostname_tmp == NULL)
return FEDFS_ERR_SVRFAULT;
- }
*host = malloc(sizeof(**host));
if (*host == NULL) {
free(hostname_tmp);
- xlog(D_GENERAL, "%s: Failed to allocate memory for nsdb object",
- __func__);
return FEDFS_ERR_SVRFAULT;
}
@@ -1441,11 +1433,8 @@ nsdb_enumerate_nsdbs(char ***nsdblist)
}
result = calloc(nrows + 1, sizeof(char *));
- if (result == NULL) {
- xlog(L_ERROR, "%s: Failed to allocate memory for result",
- __func__);
+ if (result == NULL)
goto out_free;
- }
for (i = 0; i < nrows; i++) {
char *hostname = resultp[(i + 1) * 2];
@@ -1453,12 +1442,9 @@ nsdb_enumerate_nsdbs(char ***nsdblist)
char *tmp;
tmp = malloc(strlen(hostname) + strlen(":") + strlen(port) + 1);
- if (tmp == NULL) {
- xlog(L_ERROR, "%s: Failed to allocate memory "
- "for result", __func__);
+ if (tmp == NULL)
nsdb_free_string_array(result);
goto out_free;
- }
(void)sprintf(tmp, "%s:%s", hostname, port);
diff --git a/src/libnsdb/path.c b/src/libnsdb/path.c
index a7cb524..bc4d804 100644
--- a/src/libnsdb/path.c
+++ b/src/libnsdb/path.c
@@ -88,11 +88,8 @@ nsdb_alloc_zero_component_pathname(char ***path_array)
xlog(D_GENERAL, "%s: Zero-component pathname", __func__);
result = (char **)calloc(1, sizeof(char *));
- if (result == NULL) {
- xlog(L_ERROR, "%s: Failed to allocate array",
- __func__);
+ if (result == NULL)
return FEDFS_ERR_SVRFAULT;
- }
result[0] = NULL;
*path_array = result;
return FEDFS_OK;
@@ -122,11 +119,8 @@ nsdb_normalize_path(const char *pathname)
}
result = malloc(len + 1);
- if (result == NULL) {
- xlog(L_ERROR, "%s: Failed to allocate pathname buffer",
- __func__);
+ if (result == NULL)
return NULL;
- }
for (i = 0, j = 0; i < len; i++) {
if (pathname[i] == '/' && pathname[i + 1] == '/')
@@ -160,11 +154,8 @@ nsdb_count_components(const char *pathname, size_t *len,
/* strtok(3) will tromp on the string */
start = strdup(pathname);
- if (start == NULL) {
- xlog(L_ERROR, "%s: Failed to duplicate pathname",
- __func__);
+ if (start == NULL)
return false;
- }
length = XDR_UINT_BYTES;
count = 0;
@@ -279,11 +270,8 @@ nsdb_path_array_to_posix(char * const *path_array, char **pathname)
if (path_array[0] == NULL) {
xlog(D_GENERAL, "%s: Zero-component pathname", __func__);
result = strdup("/");
- if (result == NULL) {
- xlog(D_GENERAL, "%s: Failed to allocate buffer for result",
- __func__);
+ if (result == NULL)
return FEDFS_ERR_SVRFAULT;
- }
*pathname = result;
return FEDFS_OK;
}
@@ -322,11 +310,8 @@ nsdb_path_array_to_posix(char * const *path_array, char **pathname)
}
result = calloc(1, length + 1);
- if (result == NULL) {
- xlog(D_GENERAL, "%s: Failed to allocate buffer for result",
- __func__);
+ if (result == NULL)
return FEDFS_ERR_SVRFAULT;
- }
for (i = 0; i < count; i++) {
strcat(result, "/");
@@ -378,11 +363,8 @@ nsdb_posix_to_path_array(const char *pathname, char ***path_array)
}
result = (char **)calloc(count + 1, sizeof(char *));
- if (result == NULL) {
- xlog(L_ERROR, "%s: Failed to allocate array",
- __func__);
+ if (result == NULL)
return FEDFS_ERR_SVRFAULT;
- }
component = normalized;
for (i = 0; ; i++) {
@@ -396,12 +378,9 @@ nsdb_posix_to_path_array(const char *pathname, char ***path_array)
length = next - component;
result[i] = strndup(component, length);
- if (result[i] == NULL) {
- xlog(D_GENERAL, "%s: Failed to allocate "
- "new pathname component", __func__);
+ if (result[i] == NULL)
nsdb_free_string_array(result);
return FEDFS_ERR_SVRFAULT;
- }
if (*next == '\0')
break;
@@ -485,8 +464,6 @@ nsdb_path_array_to_fedfspathname(char * const *path_array, FedFsPathName *fpath)
if (!nsdb_new_component(component, len,
&fpath->FedFsPathName_val[i])) {
- xlog(D_GENERAL, "%s: Failed to allocate "
- "new pathname component", __func__);
nsdb_free_fedfspathname(fpath);
return FEDFS_ERR_SVRFAULT;
}
@@ -557,11 +534,8 @@ nsdb_fedfspathname_to_path_array(FedFsPathName fpath, char ***path_array)
}
result = (char **)calloc(fpath.FedFsPathName_len + 1, sizeof(char *));
- if (result == NULL) {
- xlog(L_ERROR, "%s: Failed to allocate array",
- __func__);
+ if (result == NULL)
return FEDFS_ERR_SVRFAULT;
- }
for (i = 0; i < fpath.FedFsPathName_len; i++) {
fcomp = fpath.FedFsPathName_val[i];
@@ -570,8 +544,6 @@ nsdb_fedfspathname_to_path_array(FedFsPathName fpath, char ***path_array)
result[i] = strndup(component, (size_t)len);
if (result[i] == NULL) {
- xlog(D_GENERAL, "%s: Failed to allocate "
- "new pathname component", __func__);
nsdb_free_string_array(result);
return FEDFS_ERR_SVRFAULT;
}
@@ -776,11 +748,8 @@ nsdb_uri_pathname_to_path_array(const UriUriA *uri, char ***path_array)
return nsdb_alloc_zero_component_pathname(path_array);
result = (char **)calloc(count + 1, sizeof(char *));
- if (result == NULL) {
- xlog(L_ERROR, "%s: Failed to allocate array",
- __func__);
+ if (result == NULL)
return FEDFS_ERR_SVRFAULT;
- }
for (i = 0; pos != NULL; pos = pos->next) {
size_t len;
@@ -798,8 +767,6 @@ nsdb_uri_pathname_to_path_array(const UriUriA *uri, char ***path_array)
result[i] = strndup((char *)pos->text.first, len);
if (result[i] == NULL) {
nsdb_free_string_array(result);
- xlog(L_ERROR, "%s: Failed to allocate component string",
- __func__);
return FEDFS_ERR_SVRFAULT;
}
i++;
More information about the fedfs-utils-devel
mailing list