From a8c9939451aee6b1bb2809bdd4edf640b2da431f Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Wed, 13 Nov 2024 15:22:30 +0100 Subject: tools/syz-declextract: fix generic netlink family names --- sys/linux/auto.txt | 2 +- tools/syz-declextract/syz-declextract.cpp | 11 ++++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/sys/linux/auto.txt b/sys/linux/auto.txt index 457e2557a..63e72d618 100644 --- a/sys/linux/auto.txt +++ b/sys/linux/auto.txt @@ -1020,7 +1020,7 @@ syncfs$auto(fd fd) (automatic) sysfs$auto(option int32, arg1 intptr, arg2 intptr) (automatic) sysinfo$auto(info ptr[inout, sysinfo$auto_record]) (automatic) syslog$auto(type int32, buf ptr[inout, string], len int32) (automatic) -syz_genetlink_get_family_id$auto_802_15_4_MAC(name ptr[in, string["802_15_4_MAC"]], fd sock_nl_generic) genl_802_15_4_MAC_family_id_auto (automatic) +syz_genetlink_get_family_id$auto_802_15_4_MAC(name ptr[in, string["802.15.4 MAC"]], fd sock_nl_generic) genl_802_15_4_MAC_family_id_auto (automatic) syz_genetlink_get_family_id$auto_HSR(name ptr[in, string["HSR"]], fd sock_nl_generic) genl_HSR_family_id_auto (automatic) syz_genetlink_get_family_id$auto_IOAM6(name ptr[in, string["IOAM6"]], fd sock_nl_generic) genl_IOAM6_family_id_auto (automatic) syz_genetlink_get_family_id$auto_IPVS(name ptr[in, string["IPVS"]], fd sock_nl_generic) genl_IPVS_family_id_auto (automatic) diff --git a/tools/syz-declextract/syz-declextract.cpp b/tools/syz-declextract/syz-declextract.cpp index 7f461c21e..f39d8f143 100644 --- a/tools/syz-declextract/syz-declextract.cpp +++ b/tools/syz-declextract/syz-declextract.cpp @@ -886,8 +886,6 @@ private: } } - auto name = toIdentifier( - llvm::dyn_cast(genlFamilyInit->getInit(genlFamilyMember["name"]))->getString().str()); const auto &globalPolicyName = genlFamilyInit->getInit(genlFamilyMember["policy"])->getAsBuiltinConstantDeclRef(*context); @@ -896,7 +894,10 @@ private: familyPolicyName = *getPolicyName(Result, globalPolicyName); } - std::string msghdr = "msghdr_" + name + "_auto"; + std::string familyName = + llvm::dyn_cast(genlFamilyInit->getInit(genlFamilyMember["name"]))->getString().str(); + std::string identifierName = toIdentifier(familyName); + std::string msghdr = "msghdr_" + identifierName + "_auto"; bool printedCmds = false; for (const auto &opsType : {"ops", "small_ops", "split_ops"}) { for (auto &ops : getOps(Result, opsType, genlFamilyInit)) { @@ -917,12 +918,12 @@ private: if (!printedCmds) { // Do not print resources and types if they're not used in any cmds return; } - std::string resourceName = "genl_" + name + "_family_id_auto"; + std::string resourceName = "genl_" + identifierName + "_family_id_auto"; printf("resource %s[int16]\n", resourceName.c_str()); printf("type %s[CMD, POLICY] msghdr_netlink[netlink_msg_t[%s, genlmsghdr_t[CMD], POLICY]]\n", msghdr.c_str(), resourceName.c_str()); printf("syz_genetlink_get_family_id$auto_%s(name ptr[in, string[\"%s\"]], fd sock_nl_generic) %s (automatic)\n", - name.c_str(), name.c_str(), resourceName.c_str()); + identifierName.c_str(), familyName.c_str(), resourceName.c_str()); } }; -- cgit mrf-deployment