diff options
author | Pablo Neira Ayuso <pablo@netfilter.org> | 2008-11-23 23:59:44 +0100 |
---|---|---|
committer | Eric Leblond <eric@inl.fr> | 2008-12-09 01:19:25 +0100 |
commit | d4cf078cb71a943af0dcaa51ed5f950df0fdeca3 (patch) | |
tree | 7a732b2f7526343f76ab71092bd6b7dccc233497 /filter/ulogd_filter_PWSNIFF.c | |
parent | 8aa47fcd3c013913b5e553053e0098b6765e5544 (diff) |
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 <eric@inl.fr>
Diffstat (limited to 'filter/ulogd_filter_PWSNIFF.c')
-rw-r--r-- | filter/ulogd_filter_PWSNIFF.c | 27 |
1 files changed, 12 insertions, 15 deletions
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; } |