Merge pull request #14358 from donaldsharp/tc_possible_crash

zebra: Prevent Null pointer deref
This commit is contained in:
Donatas Abraitis 2023-09-07 10:09:37 +03:00 committed by GitHub
commit f3434880b6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -703,6 +703,8 @@ int netlink_qdisc_change(struct nlmsghdr *h, ns_id_t ns_id, int startup)
{
struct tcmsg *tcm;
struct zebra_tc_qdisc qdisc = {};
enum tc_qdisc_kind kind = TC_QDISC_UNSPEC;
const char *kind_str = "Unknown";
int len;
struct rtattr *tb[TCA_MAX + 1];
@ -722,9 +724,11 @@ int netlink_qdisc_change(struct nlmsghdr *h, ns_id_t ns_id, int startup)
tcm = NLMSG_DATA(h);
netlink_parse_rtattr(tb, TCA_MAX, TCA_RTA(tcm), len);
const char *kind_str = (const char *)RTA_DATA(tb[TCA_KIND]);
if (RTA_DATA(tb[TCA_KIND])) {
kind_str = (const char *)RTA_DATA(tb[TCA_KIND]);
enum tc_qdisc_kind kind = tc_qdisc_str2kind(kind_str);
kind = tc_qdisc_str2kind(kind_str);
}
qdisc.qdisc.ifindex = tcm->tcm_ifindex;