diff options
authorDavid Fabro <>2010-06-10 15:03:44 +0200
committerPablo Neira Ayuso <>2010-06-10 15:03:44 +0200
commit21fd1834b5ce0a1f5b590f7e1ad23bba64fbafdf (patch)
parent6e204c91b6c7ece751331de2fa3fb460bc5edd59 (diff)
payload buffer datatypes are consistent
The 'data' parameter to nfq_get_payload() returns pointer to unsigned char (rather than signed char) to make it consistent with the 'buf' parameter of nfq_set_verdict(), nfq_set_verdict2(), and nfq_set_verdict_mark(), all of which refer to the same data. Either signed or unsigned is fine, but they should be consistent as the output of nfq_get_payload() may be passed back into nfq_set_verdict*(); in that case, this change eliminates the need for typecasting in the calling code when using compilers that enforce strict typecasting. Signed-off-by: David Favro <> Signed-off-by: Pablo Neira Ayuso <>
3 files changed, 3 insertions, 3 deletions
diff --git a/include/libnetfilter_queue/libnetfilter_queue.h b/include/libnetfilter_queue/libnetfilter_queue.h
index 2e2ca8b..53bda74 100644
--- a/include/libnetfilter_queue/libnetfilter_queue.h
+++ b/include/libnetfilter_queue/libnetfilter_queue.h
@@ -104,7 +104,7 @@ extern int nfq_get_physoutdev_name(struct nlif_handle *nlif_handle,
extern struct nfqnl_msg_packet_hw *nfq_get_packet_hw(struct nfq_data *nfad);
/* return -1 if problem, length otherwise */
-extern int nfq_get_payload(struct nfq_data *nfad, char **data);
+extern int nfq_get_payload(struct nfq_data *nfad, unsigned char **data);
#ifdef __cplusplus
} /* extern "C" */
diff --git a/src/libnetfilter_queue.c b/src/libnetfilter_queue.c
index 4cc4925..c543055 100644
--- a/src/libnetfilter_queue.c
+++ b/src/libnetfilter_queue.c
@@ -1003,7 +1003,7 @@ struct nfqnl_msg_packet_hw *nfq_get_packet_hw(struct nfq_data *nfad)
* \return -1 on error, otherwise > 0.
-int nfq_get_payload(struct nfq_data *nfad, char **data)
+int nfq_get_payload(struct nfq_data *nfad, unsigned char **data)
*data = nfnl_get_pointer_to_data(nfad->data, NFQA_PAYLOAD, char);
if (*data)
diff --git a/utils/nfqnl_test.c b/utils/nfqnl_test.c
index 036bdab..9eebd9b 100644
--- a/utils/nfqnl_test.c
+++ b/utils/nfqnl_test.c
@@ -16,7 +16,7 @@ static u_int32_t print_pkt (struct nfq_data *tb)
struct nfqnl_msg_packet_hw *hwph;
u_int32_t mark,ifi;
int ret;
- char *data;
+ unsigned char *data;
ph = nfq_get_msg_packet_hdr(tb);
if (ph) {