Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/external/bsd/dhcpcd/dist/src Import dhcpcd-8.0.5 with the fo...



details:   https://anonhg.NetBSD.org/src/rev/2f84756b6ac6
branches:  trunk
changeset: 459479:2f84756b6ac6
user:      roy <roy%NetBSD.org@localhost>
date:      Fri Sep 13 10:58:31 2019 +0000

description:
Import dhcpcd-8.0.5 with the following changes:
  *  inet6: Fix default route not being installed
  *  DHCP: If root fs is network mounted, enable last lease extend
  *  man: Fix lint errors.
  *  DHCP: Give a better message when packet validation fails
  *  DHCP: Ensure we have enough data to checksum IP and UDP

The last change fixes a potential DoS attack introduced in dhcpcd-8.0.3 when
the checksuming code was changed to accomodate variable length IP headers.

diffstat:

 external/bsd/dhcpcd/dist/src/common.c          |   33 +-
 external/bsd/dhcpcd/dist/src/common.h          |    1 +
 external/bsd/dhcpcd/dist/src/defs.h            |    2 +-
 external/bsd/dhcpcd/dist/src/dhcpcd-embedded.c |  407 +++++++++++++++++++++++++
 external/bsd/dhcpcd/dist/src/dhcpcd-embedded.h |   32 +
 external/bsd/dhcpcd/dist/src/dhcpcd.conf.5.in  |    6 +-
 6 files changed, 460 insertions(+), 21 deletions(-)

diffs (truncated from 550 to 300 lines):

diff -r f4b595d33af7 -r 2f84756b6ac6 external/bsd/dhcpcd/dist/src/common.c
--- a/external/bsd/dhcpcd/dist/src/common.c     Fri Sep 13 10:31:46 2019 +0000
+++ b/external/bsd/dhcpcd/dist/src/common.c     Fri Sep 13 10:58:31 2019 +0000
@@ -26,28 +26,12 @@
  * SUCH DAMAGE.
  */
 
-#include <sys/param.h>
-#include <sys/time.h>
-#ifdef __sun
-#include <sys/sysmacros.h>
-#endif
+#include <sys/statvfs.h>
 
-#include <assert.h>
 #include <ctype.h>
-#include <err.h>
 #include <errno.h>
-#include <fcntl.h>
-#include <limits.h>
-#ifdef BSD
-#  include <paths.h>
-#endif
-#include <stdarg.h>
-#include <stdint.h>
 #include <stdio.h>
 #include <stdlib.h>
-#include <string.h>
-#include <time.h>
-#include <unistd.h>
 
 #include "common.h"
 #include "dhcpcd.h"
@@ -153,3 +137,18 @@
        fclose(fp);
        return len;
 }
+
+int
+is_root_local(void)
+{
+#ifdef ST_LOCAL
+       struct statvfs vfs;
+
+       if (statvfs("/", &vfs) == -1)
+               return -1;
+       return vfs.f_flag & ST_LOCAL ? 1 : 0;
+#else
+       errno = ENOTSUP;
+       return -1;
+#endif
+}
diff -r f4b595d33af7 -r 2f84756b6ac6 external/bsd/dhcpcd/dist/src/common.h
--- a/external/bsd/dhcpcd/dist/src/common.h     Fri Sep 13 10:31:46 2019 +0000
+++ b/external/bsd/dhcpcd/dist/src/common.h     Fri Sep 13 10:58:31 2019 +0000
@@ -197,4 +197,5 @@
 const char *hwaddr_ntoa(const void *, size_t, char *, size_t);
 size_t hwaddr_aton(uint8_t *, const char *);
 size_t read_hwaddr_aton(uint8_t **, const char *);
+int is_root_local(void);
 #endif
diff -r f4b595d33af7 -r 2f84756b6ac6 external/bsd/dhcpcd/dist/src/defs.h
--- a/external/bsd/dhcpcd/dist/src/defs.h       Fri Sep 13 10:31:46 2019 +0000
+++ b/external/bsd/dhcpcd/dist/src/defs.h       Fri Sep 13 10:58:31 2019 +0000
@@ -29,7 +29,7 @@
 #define CONFIG_H
 
 #define PACKAGE                        "dhcpcd"
-#define VERSION                        "8.0.4"
+#define VERSION                        "8.0.5"
 
 #ifndef CONFIG
 # define CONFIG                        SYSCONFDIR "/" PACKAGE ".conf"
diff -r f4b595d33af7 -r 2f84756b6ac6 external/bsd/dhcpcd/dist/src/dhcpcd-embedded.c
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/external/bsd/dhcpcd/dist/src/dhcpcd-embedded.c    Fri Sep 13 10:58:31 2019 +0000
@@ -0,0 +1,407 @@
+/*
+ * DO NOT EDIT!
+ * Automatically generated from dhcpcd-embedded.conf
+ * Ths allows us to simply generate DHCP structure without any C programming.
+ */
+
+/*
+ * dhcpcd - DHCP client daemon
+ * Copyright (c) 2006-2019 Roy Marples <roy%marples.name@localhost>
+ * All rights reserved
+
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <unistd.h>
+
+const char * const dhcpcd_embedded_conf[] = {
+"define 1 request ipaddress subnet_mask",
+"define 121 rfc3442 classless_static_routes",
+"define 249 rfc3442 ms_classless_static_routes",
+"define 33 request array ipaddress static_routes",
+"define 3 request array ipaddress routers",
+"define 2 uint32 time_offset",
+"define 4 array ipaddress time_servers",
+"define 5 array ipaddress ien116_name_servers",
+"define 6 array ipaddress domain_name_servers",
+"define 7 array ipaddress log_servers",
+"define 8 array ipaddress cookie_servers",
+"define 9 array ipaddress lpr_servers",
+"define 10 array ipaddress impress_servers",
+"define 11 array ipaddress resource_location_servers",
+"define 12 dname host_name",
+"define 13 uint16 boot_size",
+"define 14 string merit_dump",
+"define 15 array dname domain_name",
+"define 16 ipaddress swap_server",
+"define 17 string root_path",
+"define 18 string extensions_path",
+"define 19 byte ip_forwarding",
+"define 20 byte non_local_source_routing",
+"define 21 array ipaddress policy_filter",
+"define 22 uint16 max_dgram_reassembly",
+"define 23 byte default_ip_ttl",
+"define 24 uint32 path_mtu_aging_timeout",
+"define 25 array uint16 path_mtu_plateau_table",
+"define 26 uint16 interface_mtu",
+"define 27 byte all_subnets_local",
+"define 28 request ipaddress broadcast_address",
+"define 29 byte perform_mask_discovery",
+"define 30 byte mask_supplier",
+"define 31 byte router_discovery",
+"define 32 ipaddress router_solicitation_address",
+"define 34 byte trailer_encapsulation",
+"define 35 uint32 arp_cache_timeout",
+"define 36 uint16 ieee802_3_encapsulation",
+"define 37 byte default_tcp_ttl",
+"define 38 uint32 tcp_keepalive_interval",
+"define 39 byte tcp_keepalive_garbage",
+"define 40 string nis_domain",
+"define 41 array ipaddress nis_servers",
+"define 42 array ipaddress ntp_servers",
+"define 43 binhex vendor_encapsulated_options",
+"define 44 array ipaddress netbios_name_servers",
+"define 45 ipaddress netbios_dd_server",
+"define 46 byte netbios_node_type",
+"define 47 string netbios_scope",
+"define 48 array ipaddress font_servers",
+"define 49 array ipaddress x_display_manager",
+"define 50 ipaddress dhcp_requested_address",
+"define 51 request uint32 dhcp_lease_time",
+"define 52 byte dhcp_option_overload",
+"define 53 byte dhcp_message_type",
+"define 54 ipaddress dhcp_server_identifier",
+"define 55 array byte dhcp_parameter_request_list",
+"define 56 string dhcp_message",
+"define 57 uint16 dhcp_max_message_size",
+"define 58 request uint32 dhcp_renewal_time",
+"define 59 request uint32 dhcp_rebinding_time",
+"define 60 string vendor_class_identifier",
+"define 61 binhex dhcp_client_identifier",
+"define 64 string nisplus_domain",
+"define 65 array ipaddress nisplus_servers",
+"define 66 dname tftp_server_name",
+"define 67 string bootfile_name",
+"define 68 array ipaddress mobile_ip_home_agent",
+"define 69 array ipaddress smtp_server",
+"define 70 array ipaddress pop_server",
+"define 71 array ipaddress nntp_server",
+"define 72 array ipaddress www_server",
+"define 73 array ipaddress finger_server",
+"define 74 array ipaddress irc_server",
+"define 75 array ipaddress streettalk_server",
+"define 76 array ipaddress streettalk_directory_assistance_server",
+"define 77 binhex user_class",
+"define 78 embed slp_agent",
+"embed byte mandatory",
+"embed array ipaddress address",
+"define 79 embed slp_service",
+"embed byte mandatory",
+"embed ascii scope_list",
+"define 80 norequest flag rapid_commit",
+"define 81 embed fqdn",
+"embed bitflags=0000NEOS flags",
+"embed byte rcode1",
+"embed byte rcode2",
+"embed optional domain fqdn",
+"define 83 embed isns",
+"embed byte reserved1",
+"embed bitflags=00000SAE functions",
+"embed byte reserved2",
+"embed bitflags=00fFsSCE dd",
+"embed byte reserved3",
+"embed bitflags=0000DMHE admin",
+"embed uint16 reserved4",
+"embed byte reserved5",
+"embed bitflags=0TXPAMSE server_security",
+"embed array ipaddress servers",
+"define 85 array ipaddress nds_servers",
+"define 86 raw nds_tree_name",
+"define 87 raw nds_context",
+"define 88 array domain bcms_controller_names",
+"define 89 array ipaddress bcms_controller_address",
+"define 90 embed auth",
+"embed byte protocol",
+"embed byte algorithm",
+"embed byte rdm",
+"embed binhex:8 replay",
+"embed binhex information",
+"define 91 uint32 client_last_transaction_time",
+"define 92 array ipaddress associated_ip",
+"define 98 string uap_servers",
+"define 99 encap geoconf_civic",
+"embed byte what",
+"embed uint16 country_code",
+"define 100 string posix_timezone",
+"define 101 string tzdb_timezone",
+"define 116 byte auto_configure",
+"define 117 array uint16 name_service_search",
+"define 118 ipaddress subnet_selection",
+"define 119 array domain domain_search",
+"define 120 rfc3361 sip_server",
+"define 122 encap tsp",
+"encap 1 ipaddress dhcp_server",
+"encap 2 ipaddress dhcp_secondary_server",
+"encap 3 rfc3361 provisioning_server",
+"encap 4 embed as_req_as_rep_backoff",
+"embed uint32 nominal",
+"embed uint32 maximum",
+"embed uint32 retry",
+"encap 5 embed ap_req_ap_rep_backoff",
+"embed uint32 nominal",
+"embed uint32 maximum",
+"embed uint32 retry",
+"encap 6 domain kerberos_realm",
+"encap 7 byte ticket_granting_server_utilization",
+"encap 8 byte provisioning_timer",
+"define 123 binhex geoconf",
+"define 124 binhex vivco",
+"define 125 embed vivso",
+"embed uint32 enterprise_number",
+"define 136 array ipaddress pana_agent",
+"define 137 domain lost_server",
+"define 138 array ipaddress capwap_ac",
+"define 139 encap mos_ip",
+"encap 1 array ipaddress is",
+"encap 2 array ipaddress cs",
+"encap 3 array ipaddress es",
+"define 140 encap mos_domain",
+"encap 1 domain is",
+"encap 2 domain cs",
+"encap 3 domain es",
+"define 141 array domain sip_ua_cs_list",
+"define 142 array ipaddress andsf",
+"define 143 array ip6address andsf6",
+"define 144 binhex geoloc",
+"define 145 array byte forcerenew_nonce_capable",
+"define 146 embed rdnss_selection",
+"embed byte prf",
+"embed ipaddress primary",
+"embed ipaddress secondary",
+"embed array domain domains",
+"define 150 array ipaddress tftp_servers",
+"define 161 string mudurl",
+"define 208 binhex pxelinux_magic",
+"define 209 string config_file",
+"define 210 string path_prefix",
+"define 211 uint32 reboot_time",
+"define 212 embed sixrd",
+"embed byte mask_len",
+"embed byte prefix_len",
+"embed ip6address prefix",
+"embed array ipaddress brip_address",
+"define 213 domain access_domain",
+"define 221 encap vss",
+"encap 0 string nvt",
+"encap 1 binhex vpn_id",
+"encap 255 flag global",
+"define 252 string wpad_url",
+"definend 1 binhex source_address",
+"definend 2 binhex target_address",
+"definend 3 index embed prefix_information",
+"embed byte length",
+"embed bitflags=LA flags",
+"embed uint32 vltime",



Home | Main Index | Thread Index | Old Index