From 70f6059b9b7d0dfc65612fc0dced8b3e9b76180e Mon Sep 17 00:00:00 2001 From: kanna Date: Thu, 2 Oct 2014 15:20:52 -0700 Subject: [PATCH] lib: make a copy of state_data, since pointer can be re-used make a copy of state_data, since pointer can be re-used and the comparison checks can still give false positives Signed-off-by: kanna --- src/lib/atom.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/lib/atom.c b/src/lib/atom.c index bfb120e3..a7b60077 100644 --- a/src/lib/atom.c +++ b/src/lib/atom.c @@ -317,7 +317,8 @@ _lldpctl_do_something(lldpctl_conn_t *conn, type, to_send, mi_send) != 0) return SET_ERROR(conn, LLDPCTL_ERR_SERIALIZATION); conn->state = state_send; - conn->state_data = state_data; + if (state_data) + conn->state_data = strdup(state_data); } if (conn->state == state_send && (state_data == NULL || !strcmp(conn->state_data, state_data))) { @@ -342,6 +343,8 @@ _lldpctl_do_something(lldpctl_conn_t *conn, return SET_ERROR(conn, LLDPCTL_ERR_SERIALIZATION); /* rc == 0 */ conn->state = CONN_STATE_IDLE; + if (conn->state_data) + free(conn->state_data); conn->state_data = NULL; return 0; } else -- 2.39.5