Skip to content

Commit

Permalink
Add some defensive coding.
Browse files Browse the repository at this point in the history
  • Loading branch information
Marco van Wieringen committed Feb 17, 2015
1 parent 68578f9 commit 908e48d
Show file tree
Hide file tree
Showing 9 changed files with 18 additions and 1 deletion.
4 changes: 4 additions & 0 deletions src/ndmp/ndma_comm_session.c
Expand Up @@ -504,15 +504,19 @@ ndma_session_destroy (struct ndm_session *sess)

if (sess->plumb.control) {
ndmconn_destruct (sess->plumb.control);
sess->plumb.control = NULL;
}
if (sess->plumb.data) {
ndmconn_destruct (sess->plumb.data);
sess->plumb.data = NULL;
}
if (sess->plumb.tape) {
ndmconn_destruct (sess->plumb.tape);
sess->plumb.tape = NULL;
}
if (sess->plumb.robot) {
ndmconn_destruct (sess->plumb.robot);
sess->plumb.robot = NULL;
}

#ifndef NDMOS_OPTION_NO_CONTROL_AGENT
Expand Down
2 changes: 2 additions & 0 deletions src/ndmp/ndma_cops_backreco.c
Expand Up @@ -649,6 +649,7 @@ ndmca_backreco_startup (struct ndm_session *sess)
rc = ndmca_connect_data_agent(sess);
if (rc) {
ndmconn_destruct (sess->plumb.data);
sess->plumb.data = NULL;
return rc;
}

Expand All @@ -659,6 +660,7 @@ ndmca_backreco_startup (struct ndm_session *sess)
rc = ndmca_connect_tape_agent(sess);
if (rc) {
ndmconn_destruct (sess->plumb.tape);
sess->plumb.tape = NULL;
return rc;
}

Expand Down
2 changes: 2 additions & 0 deletions src/ndmp/ndma_cops_labels.c
Expand Up @@ -76,6 +76,7 @@ ndmca_op_init_labels (struct ndm_session *sess)
rc = ndmca_connect_tape_agent (sess);
if (rc) {
ndmconn_destruct (sess->plumb.tape);
sess->plumb.tape = NULL;
return rc; /* already tattled */
}

Expand Down Expand Up @@ -132,6 +133,7 @@ ndmca_op_list_labels (struct ndm_session *sess)

if ((rc = ndmca_connect_tape_agent (sess)) != 0) {
ndmconn_destruct (sess->plumb.tape);
sess->plumb.tape = NULL;
return rc; /* already tattled */
}

Expand Down
2 changes: 2 additions & 0 deletions src/ndmp/ndma_cops_query.c
Expand Up @@ -62,6 +62,7 @@ ndmca_opq_data (struct ndm_session *sess)
rc = ndmca_connect_data_agent (sess);
if (rc) {
ndmconn_destruct (sess->plumb.data);
sess->plumb.data = NULL;
return rc; /* already tattled */
}

Expand Down Expand Up @@ -98,6 +99,7 @@ ndmca_opq_tape (struct ndm_session *sess)
rc = ndmca_connect_tape_agent (sess);
if (rc) {
ndmconn_destruct (sess->plumb.tape);
sess->plumb.data = NULL;
return rc; /* already tattled */
}

Expand Down
1 change: 1 addition & 0 deletions src/ndmp/ndma_ctrl_conn.c
Expand Up @@ -128,6 +128,7 @@ ndmca_connect_tape_agent (struct ndm_session *sess)
rc = ndmca_connect_data_agent (sess);
if (rc) {
ndmconn_destruct (sess->plumb.data);
sess->plumb.data = NULL;
return rc;
}
sess->plumb.tape = sess->plumb.data;
Expand Down
1 change: 1 addition & 0 deletions src/ndmp/ndma_ctst_data.c
Expand Up @@ -99,6 +99,7 @@ ndmca_op_test_data (struct ndm_session *sess)
rc = ndmca_connect_data_agent(sess);
if (rc) {
ndmconn_destruct (sess->plumb.data);
sess->plumb.data = NULL;
return rc;
}

Expand Down
1 change: 1 addition & 0 deletions src/ndmp/ndma_ctst_mover.c
Expand Up @@ -141,6 +141,7 @@ ndmca_op_test_mover (struct ndm_session *sess)
rc = ndmca_connect_data_agent (sess);
if (rc) {
ndmconn_destruct (sess->plumb.data);
sess->plumb.data = NULL;
return rc;
}
}
Expand Down
1 change: 1 addition & 0 deletions src/ndmp/ndma_ctst_subr.c
Expand Up @@ -151,6 +151,7 @@ ndmca_test_load_tape (struct ndm_session *sess)
rc = ndmca_connect_tape_agent(sess);
if (rc) {
ndmconn_destruct (sess->plumb.tape);
sess->plumb.tape = NULL;
return rc; /* already tattled */
}

Expand Down
5 changes: 4 additions & 1 deletion src/ndmp/ndml_conn.c
Expand Up @@ -104,7 +104,10 @@ ndmconn_destruct (struct ndmconn *conn)
conn->chan.fd = -1;
}

xdr_destroy (&conn->xdrs);
if (conn->xdrs.x_ops) {
xdr_destroy (&conn->xdrs);
conn->xdrs.x_ops = NULL;
}

if (conn->was_allocated) {
NDMOS_API_FREE (conn);
Expand Down

0 comments on commit 908e48d

Please sign in to comment.