From nobody Mon Sep 29 14:29:10 2025 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4cb3VG5y0fz68JwM for ; Mon, 29 Sep 2025 14:29:26 +0000 (UTC) (envelope-from mjguzik@gmail.com) Received: from mail-ej1-x62d.google.com (mail-ej1-x62d.google.com [IPv6:2a00:1450:4864:20::62d]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "WR4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4cb3VG0pd4z3rmF for ; Mon, 29 Sep 2025 14:29:26 +0000 (UTC) (envelope-from mjguzik@gmail.com) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20230601 header.b=lm23Ulnp; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (mx1.freebsd.org: domain of mjguzik@gmail.com designates 2a00:1450:4864:20::62d as permitted sender) smtp.mailfrom=mjguzik@gmail.com Received: by mail-ej1-x62d.google.com with SMTP id a640c23a62f3a-b3727611c1bso854365566b.1 for ; Mon, 29 Sep 2025 07:29:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1759156163; x=1759760963; darn=freebsd.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=YBLHlyNPP9t6LcTzFCize7wx0KHrkxDOhL/BE24R//o=; b=lm23UlnpRyXqjvamNsuEhKDffYIOBbGuGItVenDH0nnJVCaoe2+vVoHJuRfdQUmlqg AQDGT78FV7JiRNiWi1fj5fUihQdbRq5Q1x6mnIU4fUqhskV4w41YMp011RWYoyh3MBXq ZZ1uVh5Vewgwks6VwVH2T2TqvyacicGK08nQooyoUnQQoRam9DxE5Ugu+AXf0hyiAXcE VKKCyPFseHhasbJDzESzsKRjKdD5EC2r6YCN28Tysv3CwklTn1c6xYU1WwujBnnm3lQX FApnveiDzgNSWKB8Pe6KUFSLaX7F2o8pm8WRtyMc+6aFsxTkqZP5wWg5mkrLSBxLS7gp eIgw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1759156163; x=1759760963; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=YBLHlyNPP9t6LcTzFCize7wx0KHrkxDOhL/BE24R//o=; b=LOjbSC8nIZikc78vmRuCKN08Ooy5QllG97LsfRnL7CdOHhV86gx0P2kUsGnw/hEquT NtCjSxiMcZJA4ZZEm0C8E1sOyNAxVzl70o5U2nA/38xwD7bpXtZHabEiKGaCOmeNb9ki seBbb6OC8Pdx/itDnWOgE0yxF4cgfIVMtz7rtccf2zeEObhKBrgDTocL8Nrs5/rV0nrt LiuM+SFuegOoHnL8HvLMxFMrjMdiJFA/CnQCeQrB4+5SQiZddDlDb904Wd/NqNSGRydU 5kAUln8dK45rQTRgQJIL+y7FKAKhKXR9arQcXu6FbIVK4OBhxSDhv01O9BkKYyRbQfXw uLEQ== X-Forwarded-Encrypted: i=1; AJvYcCWO6TSE90hfsXuxhsdEzMU7KcV7Z4Qwxmj02HBCHtLjFt/MbAD0Rf9Ah0wA8y8hcha7/ttT7JjkUXLh98xb0mdl///K@freebsd.org X-Gm-Message-State: AOJu0YzgaLeG/Mp1yxezjflMnInTIBXyPkIdHMft5Dnu6hYCGD9EA0nL AKH7/r1w1zA//e+Gkau9aT4HL+4rF+PF8Rvz0/NkKd43s1u5ofbDJwYPVM+VsiazKeowU3ntp/x QR5V9AvcCNoFYovHKTmm4AZvXOIMLeIM= X-Gm-Gg: ASbGnctGBFbxXeWb8I76v0AXf/3nCRUDwtvdigXCItCNeG5y1qfBNhIcAMTAF56yeB4 apboCTwoW3ym4WzwK/EpJe/K5Wz1QejPNCEBKsP+iKPOnnmcpVdZS9nfWncGf4YLl5f98FoMYD8 5B1XLaDM/ivtbDOsj5vz8hN+W6WGJ5Koo0eBNbkFp5zirWE+dHB92OKxI2nh+X4WxkkA5AFePRK jP0M4nzNJrcv9PAdGo8cFsvnofI2VYJbl9Z0B2Bx6jgsoAa+tlJ X-Google-Smtp-Source: AGHT+IEkZNqiBgfYXi24bTKQaauuEp0ioRIig8yAgcJm4J7t9sRejqAc4+zaDnu5KN51zRfcsGO/imJ86TaEDkBg8w8= X-Received: by 2002:a17:906:6a14:b0:b29:8743:8203 with SMTP id a640c23a62f3a-b34b14ad9e0mr1967841766b.0.1759156162755; Mon, 29 Sep 2025 07:29:22 -0700 (PDT) List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org MIME-Version: 1.0 References: <201310151031.r9FAVgRP008282@svn.freebsd.org> In-Reply-To: <201310151031.r9FAVgRP008282@svn.freebsd.org> From: Mateusz Guzik Date: Mon, 29 Sep 2025 16:29:10 +0200 X-Gm-Features: AS18NWCCz3H2jT3gqy1oALdqtkYDW60-H4oU7xM-w0Ip-hoLD87gG_bp3uGrPIc Message-ID: Subject: Re: svn commit: r256519 - in head/sys: net netatalk netinet netinet6 netipx To: Gleb Smirnoff Cc: src-committers@freebsd.org, "" , "dev-commits-src-main@FreeBSD.org" Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spamd-Bar: --- X-Spamd-Result: default: False [-3.88 / 15.00]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_MEDIUM(-0.99)[-0.991]; NEURAL_HAM_SHORT(-0.88)[-0.885]; DMARC_POLICY_ALLOW(-0.50)[gmail.com,none]; R_SPF_ALLOW(-0.20)[+ip6:2a00:1450:4000::/36]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20230601]; MIME_GOOD(-0.10)[text/plain]; ARC_NA(0.00)[]; RCVD_TLS_LAST(0.00)[]; FROM_HAS_DN(0.00)[]; TO_DN_EQ_ADDR_SOME(0.00)[]; TO_DN_SOME(0.00)[]; MIME_TRACE(0.00)[0:+]; DWL_DNSWL_NONE(0.00)[gmail.com:dkim]; FREEMAIL_FROM(0.00)[gmail.com]; DKIM_TRACE(0.00)[gmail.com:+]; MISSING_XM_UA(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[2a00:1450:4864:20::62d:from]; PREVIOUSLY_DELIVERED(0.00)[dev-commits-src-all@freebsd.org]; TO_MATCH_ENVRCPT_SOME(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; MID_RHS_MATCH_FROMTLD(0.00)[]; ASN(0.00)[asn:15169, ipnet:2a00:1450::/32, country:US]; MLMMJ_DEST(0.00)[dev-commits-src-all@freebsd.org]; RCVD_COUNT_ONE(0.00)[1]; FREEMAIL_ENVFROM(0.00)[gmail.com] X-Rspamd-Queue-Id: 4cb3VG0pd4z3rmF On Tue, Oct 15, 2013 at 12:31=E2=80=AFPM Gleb Smirnoff wrote: > > Author: glebius > Date: Tue Oct 15 10:31:42 2013 > New Revision: 256519 > URL: http://svnweb.freebsd.org/changeset/base/256519 > > Log: > Remove ifa_init() and provide ifa_alloc() that will allocate and setu= p > struct ifaddr internally. > > Sponsored by: Netflix > Sponsored by: Nginx, Inc. > > Modified: > head/sys/net/if.c > head/sys/net/if_var.h > head/sys/netatalk/at_control.c > head/sys/netinet/in.c > head/sys/netinet6/in6.c > head/sys/netipx/ipx.c > > Modified: head/sys/net/if.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/sys/net/if.c Tue Oct 15 10:19:24 2013 (r256518) > +++ head/sys/net/if.c Tue Oct 15 10:31:42 2013 (r256519) > @@ -633,8 +633,7 @@ if_attach_internal(struct ifnet *ifp, in > socksize =3D sizeof(*sdl); > socksize =3D roundup2(socksize, sizeof(long)); > ifasize =3D sizeof(*ifa) + 2 * socksize; > - ifa =3D malloc(ifasize, M_IFADDR, M_WAITOK | M_ZERO); > - ifa_init(ifa); > + ifa =3D ifa_alloc(ifasize, M_WAITOK); > sdl =3D (struct sockaddr_dl *)(ifa + 1); > sdl->sdl_len =3D socksize; > sdl->sdl_family =3D AF_LINK; > @@ -1417,13 +1416,23 @@ if_maddr_runlock(struct ifnet *ifp) > /* > * Initialization, destruction and refcounting functions for ifaddrs. > */ > -void > -ifa_init(struct ifaddr *ifa) > +struct ifaddr * > +ifa_alloc(size_t size, int flags) > { > + struct ifaddr *ifa; > + > + KASSERT(size >=3D sizeof(struct ifaddr), > + ("%s: invalid size %zu", __func__, size)); > + We have crashes stemming from this: panic: ifa_alloc: invalid size 16 panic() at panic+0x43/frame 0xfffffe009e777760 ifa_alloc() at ifa_alloc+0xd6/frame 0xfffffe009e777780 in6_ifadd() at in6_ifadd+0xd8/frame 0xfffffe009e7778a0 nd6_ra_input() at nd6_ra_input+0x1023/frame 0xfffffe009e777a80 icmp6_input() at icmp6_input+0x5b6/frame 0xfffffe009e777c00 ip6_input() at ip6_input+0xc94/frame 0xfffffe009e777ce0 sppp_input() at sppp_input+0x502/frame 0xfffffe009e777d70 pppoe_data_input() at pppoe_data_input+0x1e7/frame 0xfffffe009e777de0 swi_net() at swi_net+0x19b/frame 0xfffffe009e777e60 ithread_loop() at ithread_loop+0x266/frame 0xfffffe009e777ef0 fork_exit() at fork_exit+0x82/frame 0xfffffe009e777f30 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe009e777f30 in6_ifadd has: struct in6_addr taddr; ifa =3D ifa_alloc(sizeof(taddr), M_WAITOK); should the assert be simply removed? > + ifa =3D malloc(size, M_IFADDR, M_ZERO | flags); > + if (ifa =3D=3D NULL) > + return (NULL); > > mtx_init(&ifa->ifa_mtx, "ifaddr", NULL, MTX_DEF); > refcount_init(&ifa->ifa_refcnt, 1); > ifa->if_data.ifi_datalen =3D sizeof(ifa->if_data); > + > + return (ifa); > } > > void > > Modified: head/sys/net/if_var.h > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/sys/net/if_var.h Tue Oct 15 10:19:24 2013 (r256518) > +++ head/sys/net/if_var.h Tue Oct 15 10:31:42 2013 (r256519) > @@ -819,8 +819,8 @@ struct ifaddr { > #define IFA_LOCK(ifa) mtx_lock(&(ifa)->ifa_mtx) > #define IFA_UNLOCK(ifa) mtx_unlock(&(ifa)->ifa_mtx) > > +struct ifaddr * ifa_alloc(size_t size, int flags); > void ifa_free(struct ifaddr *ifa); > -void ifa_init(struct ifaddr *ifa); > void ifa_ref(struct ifaddr *ifa); > #endif > > > Modified: head/sys/netatalk/at_control.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/sys/netatalk/at_control.c Tue Oct 15 10:19:24 2013 (= r256518) > +++ head/sys/netatalk/at_control.c Tue Oct 15 10:31:42 2013 (= r256519) > @@ -199,16 +199,10 @@ at_control(struct socket *so, u_long cmd > * allocate a fresh one. > */ > if (aa =3D=3D NULL) { > - aa =3D malloc(sizeof(struct at_ifaddr), M_IFADDR, > - M_NOWAIT | M_ZERO); > - if (aa =3D=3D NULL) { > - error =3D ENOBUFS; > - goto out; > - } > - callout_init(&aa->aa_callout, CALLOUT_MPSAFE); > + ifa =3D ifa_alloc(sizeof(struct at_ifaddr), M_WAI= TOK); > + aa =3D (struct at_ifaddr *)ifa; > > - ifa =3D (struct ifaddr *)aa; > - ifa_init(ifa); > + callout_init(&aa->aa_callout, CALLOUT_MPSAFE); > > /* > * As the at_ifaddr contains the actual sockaddrs= , > > Modified: head/sys/netinet/in.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/sys/netinet/in.c Tue Oct 15 10:19:24 2013 (r256518) > +++ head/sys/netinet/in.c Tue Oct 15 10:31:42 2013 (r256519) > @@ -404,16 +404,8 @@ in_control(struct socket *so, u_long cmd > goto out; > } > if (ia =3D=3D NULL) { > - ia =3D (struct in_ifaddr *) > - malloc(sizeof *ia, M_IFADDR, M_NOWAIT | > - M_ZERO); > - if (ia =3D=3D NULL) { > - error =3D ENOBUFS; > - goto out; > - } > - > - ifa =3D &ia->ia_ifa; > - ifa_init(ifa); > + ifa =3D ifa_alloc(sizeof(struct in_ifaddr), M_WAI= TOK); > + ia =3D (struct in_ifaddr *)ifa; > ifa->ifa_addr =3D (struct sockaddr *)&ia->ia_addr= ; > ifa->ifa_dstaddr =3D (struct sockaddr *)&ia->ia_d= staddr; > ifa->ifa_netmask =3D (struct sockaddr *)&ia->ia_s= ockmask; > > Modified: head/sys/netinet6/in6.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/sys/netinet6/in6.c Tue Oct 15 10:19:24 2013 (r256518) > +++ head/sys/netinet6/in6.c Tue Oct 15 10:31:42 2013 (r256519) > @@ -1141,12 +1141,9 @@ in6_update_ifa(struct ifnet *ifp, struct > * RA, it is called under an interrupt context. So, we s= hould > * call malloc with M_NOWAIT. > */ > - ia =3D (struct in6_ifaddr *) malloc(sizeof(*ia), M_IFADDR= , > - M_NOWAIT); > + ia =3D (struct in6_ifaddr *)ifa_alloc(sizeof(*ia), M_NOWA= IT); > if (ia =3D=3D NULL) > return (ENOBUFS); > - bzero((caddr_t)ia, sizeof(*ia)); > - ifa_init(&ia->ia_ifa); > LIST_INIT(&ia->ia6_memberships); > /* Initialize the address and masks, and put time stamp *= / > ia->ia_ifa.ifa_addr =3D (struct sockaddr *)&ia->ia_addr; > > Modified: head/sys/netipx/ipx.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D > --- head/sys/netipx/ipx.c Tue Oct 15 10:19:24 2013 (r256518) > +++ head/sys/netipx/ipx.c Tue Oct 15 10:31:42 2013 (r256519) > @@ -190,13 +190,8 @@ ipx_control(struct socket *so, u_long cm > if (td && (error =3D priv_check(td, PRIV_NET_SETLLADDR)) = !=3D 0) > goto out; > if (ia =3D=3D NULL) { > - ia =3D malloc(sizeof(*ia), M_IFADDR, M_NOWAIT | M= _ZERO); > - if (ia =3D=3D NULL) { > - error =3D ENOBUFS; > - goto out; > - } > - ifa =3D (struct ifaddr *)ia; > - ifa_init(ifa); > + ifa =3D ifa_alloc(sizeof(struct ipx_ifaddr), M_WA= ITOK); > + ia =3D (struct ipx_ifaddr *)ifa; > ia->ia_ifp =3D ifp; > ifa->ifa_addr =3D (struct sockaddr *)&ia->ia_addr= ; > ifa->ifa_netmask =3D (struct sockaddr *)&ipx_netm= ask;