From d4cf078cb71a943af0dcaa51ed5f950df0fdeca3 Mon Sep 17 00:00:00 2001 From: Pablo Neira Ayuso Date: Sun, 23 Nov 2008 23:59:44 +0100 Subject: add ukey_* function for key assignation This patch cleans up the current key assignation by introducing a set of functions ukey_* to set the key value as Eric Leblond and we discussed during the latest Netfilter Workshop. This patch is based on an idea from Holger Eitzenberger. Signed-off-by: Eric Leblond --- filter/ulogd_filter_PWSNIFF.c | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) (limited to 'filter/ulogd_filter_PWSNIFF.c') diff --git a/filter/ulogd_filter_PWSNIFF.c b/filter/ulogd_filter_PWSNIFF.c index 3cbafb6..a6cbf94 100644 --- a/filter/ulogd_filter_PWSNIFF.c +++ b/filter/ulogd_filter_PWSNIFF.c @@ -116,25 +116,22 @@ static int interp_pwsniff(struct ulogd_pluginstance *pi) } if (len) { - ret[0].u.value.ptr = (char *) malloc(len+1); - ret[0].flags |= ULOGD_RETF_VALID; - if (!ret[0].u.value.ptr) { - ulogd_log(ULOGD_ERROR, "OOM (size=%u)\n", len); + char *ptr; + ptr = (char *) malloc(len+1); + if (!ptr) return ULOGD_IRET_ERR; - } - strncpy((char *) ret[0].u.value.ptr, (char *)begp, len); - *((char *)ret[0].u.value.ptr + len) = '\0'; + strncpy(ptr, (char *)begp, len); + ptr[len] = '\0'; + okey_set_ptr(&ret[0], ptr); } if (pw_len) { - ret[1].u.value.ptr = (char *) malloc(pw_len+1); - ret[1].flags |= ULOGD_RETF_VALID; - if (!ret[1].u.value.ptr){ - ulogd_log(ULOGD_ERROR, "OOM (size=%u)\n", pw_len); + char *ptr; + ptr = (char *) malloc(pw_len+1); + if (!ptr) return ULOGD_IRET_ERR; - } - strncpy((char *)ret[1].u.value.ptr, (char *)pw_begp, pw_len); - *((char *)ret[1].u.value.ptr + pw_len) = '\0'; - + strncpy(ptr, (char *)pw_begp, pw_len); + ptr[pw_len] = '\0'; + okey_set_ptr(&ret[1], ptr); } return ULOGD_IRET_OK; } -- cgit v1.2.3