@@ -276,6 +276,11 @@ FedFsStatus
nsdb_create_fsn_s(nsdb_t host, const char *nce, const char *fsn_uuid,
const unsigned int ttl, unsigned int *ldap_err)
{
+ if (host == NULL) {
+ xlog(L_ERROR, "%s: Invalid host parameter", __func__);
+ return FEDFS_ERR_INVAL;
+ }
+
if (host->fn_ldap == NULL) {
xlog(L_ERROR, "%s: NSDB not open", __func__);
return FEDFS_ERR_INVAL;
@@ -549,6 +554,11 @@ nsdb_delete_fsn_s(nsdb_t host, const char *nce, const char *fsn_uuid,
FedFsStatus retval;
char *dn;
+ if (host == NULL) {
+ xlog(L_ERROR, "%s: Invalid host parameter", __func__);
+ return FEDFS_ERR_INVAL;
+ }
+
if (host->fn_ldap == NULL) {
xlog(L_ERROR, "%s: NSDB not open", __func__);
return FEDFS_ERR_INVAL;
@@ -891,6 +901,11 @@ nsdb_create_fsls_s(nsdb_t host, const char *nce, struct fedfs_fsl *fsls,
struct fedfs_fsl *fsl, *progress;
FedFsStatus retval;
+ if (host == NULL) {
+ xlog(L_ERROR, "%s: Invalid host parameter", __func__);
+ return FEDFS_ERR_INVAL;
+ }
+
if (host->fn_ldap == NULL) {
xlog(D_GENERAL, "%s: NSDB not open", __func__);
return FEDFS_ERR_INVAL;
@@ -1072,6 +1087,11 @@ nsdb_delete_fsl_s(nsdb_t host, const char *nce, const char *fsl_uuid,
FedFsStatus retval;
char *dn;
+ if (host == NULL) {
+ xlog(L_ERROR, "%s: Invalid host parameter", __func__);
+ return FEDFS_ERR_INVAL;
+ }
+
if (host->fn_ldap == NULL) {
xlog(L_ERROR, "%s: NSDB not open", __func__);
return FEDFS_ERR_INVAL;
@@ -1198,6 +1218,11 @@ nsdb_update_fsl_s(nsdb_t host, const char *nce, const char *fsl_uuid,
FedFsStatus retval;
char *dn;
+ if (host == NULL) {
+ xlog(L_ERROR, "%s: Invalid host parameter", __func__);
+ return FEDFS_ERR_INVAL;
+ }
+
if (host->fn_ldap == NULL) {
xlog(L_ERROR, "%s: NSDB not open", __func__);
return FEDFS_ERR_INVAL;
@@ -1385,6 +1410,11 @@ nsdb_create_simple_nce_s(nsdb_t host, const char *parent,
FedFsStatus retval;
char *nce;
+ if (host == NULL) {
+ xlog(L_ERROR, "%s: Invalid host parameter", __func__);
+ return FEDFS_ERR_INVAL;
+ }
+
if (host->fn_ldap == NULL) {
xlog(L_ERROR, "%s: NSDB not open", __func__);
return FEDFS_ERR_INVAL;
@@ -1475,6 +1505,11 @@ nsdb_update_nci_s(nsdb_t host, const char *nce, unsigned int *ldap_err)
FedFsStatus retval;
char *context;
+ if (host == NULL) {
+ xlog(L_ERROR, "%s: Invalid host parameter", __func__);
+ return FEDFS_ERR_INVAL;
+ }
+
if (host->fn_ldap == NULL) {
xlog(L_ERROR, "%s: NSDB not open", __func__);
return FEDFS_ERR_INVAL;
@@ -1590,6 +1625,11 @@ nsdb_remove_nci_s(nsdb_t host, const char *nce, unsigned int *ldap_err)
FedFsStatus retval;
char *context;
+ if (host == NULL) {
+ xlog(L_ERROR, "%s: Invalid host parameter", __func__);
+ return FEDFS_ERR_INVAL;
+ }
+
if (host->fn_ldap == NULL) {
xlog(L_ERROR, "%s: NSDB not open", __func__);
return FEDFS_ERR_INVAL;
@@ -1737,6 +1777,11 @@ nsdb_delete_nsdb_s(nsdb_t host, const char *nce, unsigned int *ldap_err)
{
FedFsStatus retval;
+ if (host == NULL) {
+ xlog(L_ERROR, "%s: Invalid host parameter", __func__);
+ return FEDFS_ERR_INVAL;
+ }
+
if (host->fn_ldap == NULL) {
xlog(L_ERROR, "%s: NSDB not open", __func__);
return FEDFS_ERR_INVAL;
@@ -1780,6 +1825,11 @@ nsdb_attr_add_s(nsdb_t host, const char *dn, const char *attr,
{
struct berval bval;
+ if (host == NULL) {
+ xlog(L_ERROR, "%s: Invalid host parameter", __func__);
+ return FEDFS_ERR_INVAL;
+ }
+
if (host->fn_ldap == NULL) {
xlog(L_ERROR, "%s: NSDB not open", __func__);
return FEDFS_ERR_INVAL;
@@ -1828,6 +1878,11 @@ nsdb_attr_delete_s(nsdb_t host, const char *dn, const char *attr,
{
struct berval bval;
+ if (host == NULL) {
+ xlog(L_ERROR, "%s: Invalid host parameter", __func__);
+ return FEDFS_ERR_INVAL;
+ }
+
if (host->fn_ldap == NULL) {
xlog(L_ERROR, "%s: NSDB not open", __func__);
return FEDFS_ERR_INVAL;
@@ -606,6 +606,11 @@ nsdb_get_ncedn_s(nsdb_t host, const char *naming_context, char **dn,
{
FedFsStatus retval;
+ if (host == NULL) {
+ xlog(L_ERROR, "%s: Invalid host parameter", __func__);
+ return FEDFS_ERR_INVAL;
+ }
+
if (host->fn_ldap == NULL) {
xlog(L_ERROR, "%s: NSDB not open", __func__);
return FEDFS_ERR_INVAL;
@@ -726,6 +731,11 @@ nsdb_get_naming_contexts_s(nsdb_t host, char ***contexts,
char **tmp;
int rc;
+ if (host == NULL) {
+ xlog(L_ERROR, "%s: Invalid host parameter", __func__);
+ return FEDFS_ERR_INVAL;
+ }
+
if (host->fn_ldap == NULL) {
xlog(L_ERROR, "%s: NSDB not open", __func__);
return FEDFS_ERR_INVAL;
@@ -1285,6 +1295,11 @@ nsdb_resolve_fsn_s(nsdb_t host, const char *nce, const char *fsn_uuid,
FedFsStatus retval;
int i, j;
+ if (host == NULL) {
+ xlog(L_ERROR, "%s: Invalid host parameter", __func__);
+ return FEDFS_ERR_INVAL;
+ }
+
if (host->fn_ldap == NULL) {
xlog(L_ERROR, "%s: NSDB not open", __func__);
return FEDFS_ERR_INVAL;
@@ -1596,6 +1611,11 @@ nsdb_get_fsn_s(nsdb_t host, const char *nce, const char *fsn_uuid,
FedFsStatus retval;
int i, j;
+ if (host == NULL) {
+ xlog(L_ERROR, "%s: Invalid host parameter", __func__);
+ return FEDFS_ERR_INVAL;
+ }
+
if (host->fn_ldap == NULL) {
xlog(L_ERROR, "%s: NSDB not open", __func__);
return FEDFS_ERR_INVAL;
@@ -1850,6 +1870,11 @@ nsdb_list_s(nsdb_t host, const char *nce, char ***fsns, unsigned int *ldap_err)
FedFsStatus retval;
int i, j;
+ if (host == NULL) {
+ xlog(L_ERROR, "%s: Invalid host parameter", __func__);
+ return FEDFS_ERR_INVAL;
+ }
+
if (host->fn_ldap == NULL) {
xlog(L_ERROR, "%s: NSDB not open", __func__);
return FEDFS_ERR_INVAL;
@@ -1960,6 +1985,11 @@ nsdb_ping_nsdb_s(nsdb_t host, unsigned int *ldap_err)
FedFsStatus retval;
char **contexts = NULL;
+ if (host == NULL) {
+ xlog(L_ERROR, "%s: Invalid host parameter", __func__);
+ return FEDFS_ERR_INVAL;
+ }
+
if (host->fn_ldap == NULL) {
xlog(L_ERROR, "%s: NSDB not open", __func__);
return FEDFS_ERR_INVAL;
@@ -2082,6 +2112,11 @@ nsdb_find_naming_context_s(nsdb_t host, const char *entry, char **context,
char **contexts = NULL;
FedFsStatus retval;
+ if (host == NULL) {
+ xlog(L_ERROR, "%s: Invalid host parameter", __func__);
+ return FEDFS_ERR_INVAL;
+ }
+
if (host->fn_ldap == NULL) {
xlog(L_ERROR, "%s: NSDB not open", __func__);
return FEDFS_ERR_INVAL;
libnsdb is intended to provide a public API, and as such, it is careful to check all incoming parameters. For some reason, though, it doesn't verify that host != NULL. Add that check. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> --- src/libnsdb/administrator.c | 55 +++++++++++++++++++++++++++++++++++++++++++ src/libnsdb/fileserver.c | 35 +++++++++++++++++++++++++++ 2 files changed, 90 insertions(+)