summaryrefslogtreecommitdiffstats
path: root/filter/ulogd_filter_PWSNIFF.c
diff options
context:
space:
mode:
authorPablo Neira Ayuso <pablo@netfilter.org>2008-11-23 23:59:44 +0100
committerEric Leblond <eric@inl.fr>2008-12-09 01:19:25 +0100
commitd4cf078cb71a943af0dcaa51ed5f950df0fdeca3 (patch)
tree7a732b2f7526343f76ab71092bd6b7dccc233497 /filter/ulogd_filter_PWSNIFF.c
parent8aa47fcd3c013913b5e553053e0098b6765e5544 (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.c27
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;
}