From: Donald Sharp Date: Mon, 4 Dec 2017 23:59:47 +0000 (-0500) Subject: lib: Allow memory to be cleaned up for error cases in ptm X-Git-Tag: frr-4.0-dev~107^2~1 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=b5f270ad0923e0e12584ca341df8fc1b11213225;p=matthieu%2Ffrr.git lib: Allow memory to be cleaned up for error cases in ptm ptm_lib.c had no way to cleanup after itself when an error was detected. This adds a function to cleanup context in such a case. A followup commit will use this new functionality. Signed-off-by: Donald Sharp --- diff --git a/lib/ptm_lib.c b/lib/ptm_lib.c index e881d49225..28d26149e5 100644 --- a/lib/ptm_lib.c +++ b/lib/ptm_lib.c @@ -223,6 +223,25 @@ int ptm_lib_init_msg(ptm_lib_handle_t *hdl, int cmd_id, int type, void *in_ctxt, return 0; } +int ptm_lib_cleanup_msg(ptm_lib_handle_t *hdl, void *ctxt) +{ + ptm_lib_msg_ctxt_t *p_ctxt = ctxt; + csv_t *csv; + + if (!p_ctxt) { + ERRLOG("%s: no context \n", __FUNCTION__); + return -1; + } + + csv = p_ctxt->csv; + + csv_clean(csv); + csv_free(csv); + free(p_ctxt); + + return 0; +} + int ptm_lib_complete_msg(ptm_lib_handle_t *hdl, void *ctxt, char *buf, int *len) { ptm_lib_msg_ctxt_t *p_ctxt = ctxt; diff --git a/lib/ptm_lib.h b/lib/ptm_lib.h index bc8fe4ac54..fc4d520dcb 100644 --- a/lib/ptm_lib.h +++ b/lib/ptm_lib.h @@ -63,5 +63,6 @@ int ptm_lib_find_key_in_msg(void *, const char *, char *); int ptm_lib_init_msg(ptm_lib_handle_t *, int, int, void *, void **); int ptm_lib_append_msg(ptm_lib_handle_t *, void *, const char *, const char *); int ptm_lib_complete_msg(ptm_lib_handle_t *, void *, char *, int *); +int ptm_lib_cleanup_msg(ptm_lib_handle_t *, void *); #endif