• Bug#1108915: marked as done (unblock: pdns/4.9.7-1 [pre-approval]) (2/2

    From Debian Bug Tracking System@21:1/5 to All on Tue Jul 8 19:10:01 2025
    [continued from previous message]

    ippart.substr(28, 4);

    - ComboAddress ca(fulladdress);
    - return ca.toString();
    + ComboAddress address(fulladdress);
    + return address.toString();
    }
    }
    + return allZerosIP;
    + } catch (const PDNSException &e) {
    + return allZerosIP;
    }
    -
    - return std::string("::");
    });
    - lua.writeFunction("createReverse6", [](string format, boost::optional<std::unordered_map<string,string>> e){
    + lua.writeFunction("createReverse6", [](const string &format, boost::optional<std::unordered_map<string,string>> excp){
    vector<ComboAddress> candidates;

    try {
    auto labels= s_lua_record_ctx->qname.getRawLabels();
    - if(labels.size()<32)
    + if (labels.size()<32) {
    return std::string("unknown");
    + }
    boost::format fmt(format);
    fmt.exceptions( boost::io::all_error_bits ^ ( boost::io::too_many_args_bit | boost::io::too_few_args_bit ) );


    string together;
    vector<string> quads;
    - for(int i=0; i<8; ++i) {
    - if(i)
    - together+=":";
    + for (int chunk = 0; chunk < 8; ++chunk) {
    + if (chunk != 0) {
    + together += ":";
    + }
    string lquad;
    - for(int j=0; j <4; ++j) {
    - lquad.append(1, labels[31-i*4-j][0]);
    - together += labels[31-i*4-j][0];
    + for (int quartet = 0; quartet < 4; ++quartet) {
    + lquad.append(1, labels[31 - chunk * 4 - quartet][0]);
    + together += labels[31 - chunk * 4 - quartet][0];
    }
    quads.push_back(lquad);
    }
    - ComboAddress ip6(together,0);
    + ComboAddress ip6(together,0);

    - if(e) {
    - auto& addrs=*e;
    + if (excp) {
    + auto& addrs=*excp;
    for(const auto& addr: addrs) {
    // this makes sure we catch all forms of the address
    - if(ComboAddress(addr.first,0)==ip6)
    + if (ComboAddress(addr.first, 0) == ip6) {
    return addr.second;
    + }
    }
    }

    string dashed=ip6.toString();
    boost::replace_all(dashed, ":", "-");

    - for(int i=31; i>=0; --i)
    - fmt % labels[i];
    + for (int byte = 31; byte >= 0; --byte) {
    + fmt % labels[byte];
    + }
    fmt % dashed;

    - for(const auto& lquad : quads)
    + for(const auto& lquad : quads) {
    fmt % lquad;
    + }

    return fmt.str();
    }
    diff -Nru pdns-4.9.4/pdns/test-tsig.cc pdns-4.9.7/pdns/test-tsig.cc
    --- pdns-4.9.4/pdns/test-tsig.cc 2025-02-06 16:17:38.000000000 +0100
    +++ pdns-4.9.7/pdns/test-tsig.cc 2025-07-07 09:42:15.000000000 +0200
    @@ -141,6 +141,17 @@
    checkTSIG(tsigName, tsigAlgo.makeLowerCase(), tsigSecret, packet);
    }

    +BOOST_AUTO_TEST_CASE(test_TSIG_different_case_name) {
    + DNSName tsigName("tsig.Name");
    + DNSName tsigAlgo("HMAC-MD5.SIG-ALG.REG.INT");
    + DNSName qname("test.valid.tsig");
    + string tsigSecret("verysecret");
    +
    + vector<uint8_t> packet = generateTSIGQuery(qname, tsigName, tsigAlgo, tsigSecret);
    +
    + checkTSIG(tsigName.makeLowerCase(), tsigAlgo.makeLowerCase(), tsigSecret, packet);
    +}
    +
    BOOST_AUTO_TEST_CASE(test_TSIG_different_name_same_algo) {
    DNSName tsigName("tsig.name");
    DNSName tsigAlgo("HMAC-MD5.SIG-ALG.REG.INT");

    --yFI56D3CYuMI/PU2--

    Received: (at 1108915-done) by bugs.debian.org; 8 Jul 2025 17:02:46 +0000 X-Spam-Checker-Version: SpamAssassin 4.0.1-bugs.debian.org_2005_01_02
    (2024-03-25) on buxtehude.debian.org
    X-Spam-Level:
    X-Spam-Sta