Module Name: src Committed By: christos Date: Sun Oct 13 20:35:52 UTC 2024
Modified Files: src/external/mpl/dhcp/dist/common: options.c Log Message: protect option_dereference like in the other cases (although the option_dereference checks for it too). To generate a diff of this commit: cvs rdiff -u -r1.7 -r1.8 src/external/mpl/dhcp/dist/common/options.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/external/mpl/dhcp/dist/common/options.c diff -u src/external/mpl/dhcp/dist/common/options.c:1.7 src/external/mpl/dhcp/dist/common/options.c:1.8 --- src/external/mpl/dhcp/dist/common/options.c:1.7 Wed Oct 5 18:20:15 2022 +++ src/external/mpl/dhcp/dist/common/options.c Sun Oct 13 16:35:52 2024 @@ -1,4 +1,4 @@ -/* $NetBSD: options.c,v 1.7 2022/10/05 22:20:15 christos Exp $ */ +/* $NetBSD: options.c,v 1.8 2024/10/13 20:35:52 christos Exp $ */ /* options.c @@ -29,7 +29,7 @@ */ #include <sys/cdefs.h> -__RCSID("$NetBSD: options.c,v 1.7 2022/10/05 22:20:15 christos Exp $"); +__RCSID("$NetBSD: options.c,v 1.8 2024/10/13 20:35:52 christos Exp $"); #define DHCP_OPTION_DATA #include "dhcpd.h" @@ -235,7 +235,8 @@ int parse_option_buffer (options, buffer log_error("parse_option_buffer: " "save_option_buffer failed"); buffer_dereference(&bp, MDL); - option_dereference(&option, MDL); + if (option) + option_dereference(&option, MDL); return (0); } } else if (universe->concat_duplicates) { @@ -247,7 +248,8 @@ int parse_option_buffer (options, buffer MDL)) { log_error("parse_option_buffer: No memory."); buffer_dereference(&bp, MDL); - option_dereference(&option, MDL); + if (option) + option_dereference(&option, MDL); return (0); } /* Copy old option to new data object. */ @@ -272,7 +274,8 @@ int parse_option_buffer (options, buffer if (!option_cache_allocate(&nop, MDL)) { log_error("parse_option_buffer: No memory."); buffer_dereference(&bp, MDL); - option_dereference(&option, MDL); + if (option) + option_dereference(&option, MDL); return (0); }