Re: [PATCH 4.9 000/105] 4.9.55-stable review

From: Xin Long
Date: Thu Oct 12 2017 - 11:25:19 EST


On Thu, Oct 12, 2017 at 11:18 PM, Andreas Radke
<andreas.radke@xxxxxxxxxxx> wrote:
> Building the 4.9.x kernel package for Arch Linux 4.9.55 gives this IPv4 error here:
>
> Job for dhcpd4.service failed because the control process exited with error code.
> See "systemctl status dhcpd4.service" and "journalctl -xe" for details.
> root@server64:/root # systemctl status dhcpd4.service
> â dhcpd4.service - IPv4 DHCP server
> Loaded: loaded (/usr/lib/systemd/system/dhcpd4.service; enabled; vendor preset: disabled)
> Active: failed (Result: exit-code) since Thu 2017-10-12 17:09:38 CEST; 8s ago
> Process: 638 ExecStart=/usr/bin/dhcpd -4 -q -user dhcp -cf /etc/dhcpd.conf -pf /run/dhcpd4.pid (code=exited, status=1/FAILURE)
>
> Okt 12 17:09:38 server64 dhcpd[638]: If you think you have received this message due to a bug rather
> Okt 12 17:09:38 server64 dhcpd[638]: than a configuration issue please read the section on submitting
> Okt 12 17:09:38 server64 dhcpd[638]: bugs on either our web page at www.isc.org or in the README file
> Okt 12 17:09:38 server64 dhcpd[638]: before submitting a bug. These pages explain the proper
> Okt 12 17:09:38 server64 dhcpd[638]: process and the information we find helpful for debugging.
> Okt 12 17:09:38 server64 dhcpd[638]:
> Okt 12 17:09:38 server64 dhcpd[638]: exiting.
> Okt 12 17:09:38 server64 systemd[1]: dhcpd4.service: Control process exited, code=exited status=1
> Okt 12 17:09:38 server64 systemd[1]: dhcpd4.service: Failed with result 'exit-code'.
> Okt 12 17:09:38 server64 systemd[1]: Failed to start IPv4 DHCP server.
>
> journalctl -xe
> Okt 12 17:09:37 server64 systemd[1]: Starting IPv4 DHCP server...
> -- Subject: Unit dhcpd4.service has begun start-up
> -- Defined-By: systemd
> -- Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
> --
> -- Unit dhcpd4.service has begun starting up.
> Okt 12 17:09:38 server64 dhcpd[638]: Internet Systems Consortium DHCP Server 4.3.6
> Okt 12 17:09:38 server64 dhcpd[638]: Copyright 2004-2017 Internet Systems Consortium.
> Okt 12 17:09:38 server64 dhcpd[638]: All rights reserved.
> Okt 12 17:09:38 server64 dhcpd[638]: For info, please visit https://www.isc.org/software/dhcp/
> Okt 12 17:09:38 server64 dhcpd[638]: Source compiled to use binary-leases
> Okt 12 17:09:38 server64 dhcpd[638]: Wrote 0 deleted host decls to leases file.
> Okt 12 17:09:38 server64 dhcpd[638]: Wrote 0 new dynamic host decls to leases file.
> Okt 12 17:09:38 server64 dhcpd[638]: Wrote 16 leases to leases file.
> Okt 12 17:09:38 server64 dhcpd[638]: Can't install packet filter program: Cannot allocate memory
> Okt 12 17:09:38 server64 dhcpd[638]:
> Okt 12 17:09:38 server64 dhcpd[638]: If you think you have received this message due to a bug rather
> Okt 12 17:09:38 server64 dhcpd[638]: than a configuration issue please read the section on submitting
> Okt 12 17:09:38 server64 dhcpd[638]: bugs on either our web page at www.isc.org or in the README file
> Okt 12 17:09:38 server64 dhcpd[638]: before submitting a bug. These pages explain the proper
> Okt 12 17:09:38 server64 dhcpd[638]: process and the information we find helpful for debugging.
> Okt 12 17:09:38 server64 dhcpd[638]:
> Okt 12 17:09:38 server64 dhcpd[638]: exiting.
> Okt 12 17:09:38 server64 systemd[1]: dhcpd4.service: Control process exited, code=exited status=1
> Okt 12 17:09:38 server64 systemd[1]: dhcpd4.service: Failed with result 'exit-code'.
> Okt 12 17:09:38 server64 systemd[1]: Failed to start IPv4 DHCP server.
> -- Subject: Unit dhcpd4.service has failed
pls try revert:
commit 02f7e4101092b88e57c73171174976c8a72a3eba
Author: Eric Dumazet <edumazet@xxxxxxxxxx>
Date: Mon Oct 2 12:20:51 2017 -0700

socket, bpf: fix possible use after free

which caused a obvious issue in __sk_attach_prog():
atomic_set(&fp->refcnt, 0); <----

if (!sk_filter_charge(sk, fp)) {
kfree(fp);
return -ENOMEM;
}

bool sk_filter_charge(struct sock *sk, struct sk_filter *fp)
{
if (!atomic_inc_not_zero(&fp->refcnt)) <----
return false;

if (!__sk_filter_charge(sk, fp)) {
sk_filter_release(fp);
return false;
}

>
>
> All works well with version 4.9.54 here. Holding back 4.9.55 for now.
>
> -Andy
> Arch Linux