From 81dc912d64384c3325ea0b8095c95d645470163b Mon Sep 17 00:00:00 2001 From: Toni Uhlig Date: Thu, 6 Jun 2024 14:12:33 +0200 Subject: [PATCH] Make the bpf filter string for `pfring_set_bpf_filter()` unmutable. Signed-off-by: Toni Uhlig --- userland/lib/pfring.c | 2 +- userland/lib/pfring.h | 6 +++--- userland/lib/pfring_mod.c | 2 +- userland/lib/pfring_mod.h | 2 +- userland/lib/pfring_mod_pcap.c | 2 +- userland/lib/pfring_mod_pcap.h | 2 +- userland/lib/pfring_mod_sysdig.c | 2 +- userland/lib/pfring_mod_sysdig.h | 2 +- userland/lib/pfring_utils.c | 2 +- 9 files changed, 11 insertions(+), 11 deletions(-) diff --git a/userland/lib/pfring.c b/userland/lib/pfring.c index 7239ce78b3..f2d20fcf04 100644 --- a/userland/lib/pfring.c +++ b/userland/lib/pfring.c @@ -1317,7 +1317,7 @@ int pfring_next_pkt_raw_timestamp(pfring *ring, u_int64_t *ts) { /* **************************************************** */ -int pfring_set_bpf_filter(pfring *ring, char *filter_buffer) { +int pfring_set_bpf_filter(pfring *ring, const char *filter_buffer) { int rc = PF_RING_ERROR_NOT_SUPPORTED; if (!ring) diff --git a/userland/lib/pfring.h b/userland/lib/pfring.h index 1249d5e04a..fae886a102 100644 --- a/userland/lib/pfring.h +++ b/userland/lib/pfring.h @@ -295,7 +295,7 @@ struct __pfring { int (*enable_ring) (pfring *); int (*disable_ring) (pfring *); void (*shutdown) (pfring *); - int (*set_bpf_filter) (pfring *, char *); + int (*set_bpf_filter) (pfring *, const char *); int (*remove_bpf_filter) (pfring *); int (*get_device_clock) (pfring *, struct timespec *); int (*set_device_clock) (pfring *, struct timespec *); @@ -1055,7 +1055,7 @@ int pfring_disable_ring(pfring *ring); * @param filter_buffer The filter to set. * @return 0 on success, a negative value otherwise. */ -int pfring_set_bpf_filter(pfring *ring, char *filter_buffer); +int pfring_set_bpf_filter(pfring *ring, const char *filter_buffer); /** * Remove the BPF filter. @@ -1377,7 +1377,7 @@ void pfring_freealldevs(pfring_if_t *list); /* ********************************* */ -int pfring_parse_bpf_filter(char *filter_buffer, u_int caplen, +int pfring_parse_bpf_filter(const char *filter_buffer, u_int caplen, #ifdef BPF_RELEASE struct bpf_program #else diff --git a/userland/lib/pfring_mod.c b/userland/lib/pfring_mod.c index e0252d2c0f..4e58351eb0 100644 --- a/userland/lib/pfring_mod.c +++ b/userland/lib/pfring_mod.c @@ -941,7 +941,7 @@ int __pfring_mod_remove_bpf_filter(pfring *ring) { /* **************************************************** */ -int pfring_mod_set_bpf_filter(pfring *ring, char *filter_buffer) { +int pfring_mod_set_bpf_filter(pfring *ring, const char *filter_buffer) { int rc = -1; #ifdef ENABLE_BPF pcap_t *p; diff --git a/userland/lib/pfring_mod.h b/userland/lib/pfring_mod.h index 18d715fe26..d5cb346e8a 100644 --- a/userland/lib/pfring_mod.h +++ b/userland/lib/pfring_mod.h @@ -73,7 +73,7 @@ int pfring_mod_set_virtual_device(pfring *ring, virtual_filtering_device_info *i int pfring_mod_loopback_test(pfring *ring, char *buffer, u_int buffer_len, u_int test_len); int pfring_mod_enable_ring(pfring *ring); int pfring_mod_disable_ring(pfring *ring); -int pfring_mod_set_bpf_filter(pfring *ring, char *filter_buffer); +int pfring_mod_set_bpf_filter(pfring *ring, const char *filter_buffer); int pfring_mod_remove_bpf_filter(pfring *ring); int pfring_mod_send_last_rx_packet(pfring *ring, int tx_interface_id); void pfring_mod_shutdown(pfring *ring); diff --git a/userland/lib/pfring_mod_pcap.c b/userland/lib/pfring_mod_pcap.c index 7fdb3014d1..80d47e344f 100644 --- a/userland/lib/pfring_mod_pcap.c +++ b/userland/lib/pfring_mod_pcap.c @@ -231,7 +231,7 @@ int pfring_mod_pcap_stats(pfring *ring, pfring_stat *stats) { /* **************************************************** */ -int pfring_mod_pcap_set_bpf_filter(pfring *ring, char *bpfFilter) { +int pfring_mod_pcap_set_bpf_filter(pfring *ring, const char *bpfFilter) { pfring_pcap *pcap; struct bpf_program fcode; int rc; diff --git a/userland/lib/pfring_mod_pcap.h b/userland/lib/pfring_mod_pcap.h index 9f44de3d1d..a48e979c49 100644 --- a/userland/lib/pfring_mod_pcap.h +++ b/userland/lib/pfring_mod_pcap.h @@ -31,6 +31,6 @@ int pfring_mod_pcap_enable_ring(pfring *ring); int pfring_mod_pcap_stats(pfring *ring, pfring_stat *stats); int pfring_mod_pcap_set_socket_mode(pfring *ring, socket_mode mode); int pfring_mod_pcap_set_poll_watermark(pfring *ring, u_int16_t watermark); -int pfring_mod_pcap_set_bpf_filter(pfring *ring, char *filter_buffer); +int pfring_mod_pcap_set_bpf_filter(pfring *ring, const char *filter_buffer); #endif /* _PFRING_MOD_PCAP_H_ */ diff --git a/userland/lib/pfring_mod_sysdig.c b/userland/lib/pfring_mod_sysdig.c index 79d0b067e2..5d64186ed3 100644 --- a/userland/lib/pfring_mod_sysdig.c +++ b/userland/lib/pfring_mod_sysdig.c @@ -536,7 +536,7 @@ int pfring_mod_sysdig_get_bound_device_ifindex(pfring *ring, int *if_index) { The currently accepted syntax is "evt.type=X or evt.type=Y ..." that is a subset of the syntax supported by the sysdig command */ -int pfring_mod_sysdig_set_bpf_filter(pfring *ring, char *filter_buffer) { +int pfring_mod_sysdig_set_bpf_filter(pfring *ring, const char *filter_buffer) { u_int32_t device_id; pfring_sysdig *sysdig; char *filter, *item, *where; diff --git a/userland/lib/pfring_mod_sysdig.h b/userland/lib/pfring_mod_sysdig.h index 802d95583e..7792924c3b 100644 --- a/userland/lib/pfring_mod_sysdig.h +++ b/userland/lib/pfring_mod_sysdig.h @@ -313,7 +313,7 @@ int pfring_mod_sysdig_set_socket_mode(pfring *ring, socket_mode mode); int pfring_mod_sysdig_set_poll_watermark(pfring *ring, u_int16_t watermark); int pfring_mod_sysdig_stats(pfring *ring, pfring_stat *stats); int pfring_mod_sysdig_get_bound_device_ifindex(pfring *ring, int *if_index); -int pfring_mod_sysdig_set_bpf_filter(pfring *ring, char *filter_buffer); +int pfring_mod_sysdig_set_bpf_filter(pfring *ring, const char *filter_buffer); int pfring_mod_sysdig_remove_bpf_filter(pfring *ring); /* Public functions */ diff --git a/userland/lib/pfring_utils.c b/userland/lib/pfring_utils.c index ec239cf939..f9b25743f5 100644 --- a/userland/lib/pfring_utils.c +++ b/userland/lib/pfring_utils.c @@ -851,7 +851,7 @@ int pfring_get_mtu_size(pfring* ring) { /* *************************************** */ -int pfring_parse_bpf_filter(char *filter_buffer, u_int caplen, +int pfring_parse_bpf_filter(const char *filter_buffer, u_int caplen, #ifdef BPF_RELEASE struct bpf_program #else