[1/1] pcapng: fix null dereference in rte_pcapng_close
Checks
Commit Message
rte_pcapng_close() might dereference a null pointer; as example,
PVS-Studio gives its usage in test_pcapng.c: indeed, that call to
rte_pcapng_close() might receive a null pointer.
Link: https://pvs-studio.com/en/docs/warnings/v522/
Link: https://github.com/DPDK/dpdk/blob/e5176f23ae8b31437c3e5eb875c81f95bf3a9942/app/test/test_pcapng.c#L438
Fixes: 8d23ce8f5ee9 ("pcapng: add new library for writing pcapng files")
Signed-off-by: Ariel Otilibili <ariel.otilibili@6wind.com>
---
.mailmap | 2 +-
lib/pcapng/rte_pcapng.c | 3 +++
2 files changed, 4 insertions(+), 1 deletion(-)
Comments
On Sun, 16 Feb 2025 17:08:33 +0100
Ariel Otilibili <ariel.otilibili@6wind.com> wrote:
> rte_pcapng_close() might dereference a null pointer; as example,
> PVS-Studio gives its usage in test_pcapng.c: indeed, that call to
> rte_pcapng_close() might receive a null pointer.
>
> Link: https://pvs-studio.com/en/docs/warnings/v522/
> Link: https://github.com/DPDK/dpdk/blob/e5176f23ae8b31437c3e5eb875c81f95bf3a9942/app/test/test_pcapng.c#L438
> Fixes: 8d23ce8f5ee9 ("pcapng: add new library for writing pcapng files")
> Signed-off-by: Ariel Otilibili <ariel.otilibili@6wind.com>
Not sure this is necessary.
The analgous function is fclose() and calling fclose() with NULL will crash.
I would rather update the documentation than silently ignore buggy programs.
@@ -135,7 +135,7 @@ Anupam Kapoor <anupam.kapoor@gmail.com>
Apeksha Gupta <apeksha.gupta@nxp.com>
Archana Muniganti <marchana@marvell.com> <muniganti.archana@caviumnetworks.com>
Archit Pandey <architpandeynitk@gmail.com>
-Ariel Otilibili <otilibil@eurecom.fr> <ariel.otilibili@6wind.com>
+Ariel Otilibili <ariel.otilibili@6wind.com> <otilibil@eurecom.fr>
Arkadiusz Kubalewski <arkadiusz.kubalewski@intel.com>
Arkadiusz Kusztal <arkadiuszx.kusztal@intel.com>
Arnaud Fiorini <arnaud.fiorini@polymtl.ca>
@@ -716,6 +716,9 @@ rte_pcapng_fdopen(int fd,
void
rte_pcapng_close(rte_pcapng_t *self)
{
+ if (!self)
+ return;
+
close(self->outfd);
free(self);
}