New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GeoIP backend crashes with MMDB #6676

Closed
cmouse opened this Issue May 27, 2018 · 3 comments

Comments

Projects
None yet
3 participants
@cmouse
Contributor

cmouse commented May 27, 2018

  • Program: Authoritative
  • Issue type: Bug report

Short description

With basic GeoIP domain, the software crashes when querying using MMDB database.

[New Thread 0x7fffdf7fe700 (LWP 1358)]
May 27 09:05:52 Done launching threads, ready to distribute questions
May 27 09:05:53 Remote ::1 wants 'www.geo.example.org|A', do = 0, bufsize = 1680: packetcache MISS
Error Traversing Database for ipnum = 0 - Perhaps database is corrupt?

Thread 9 "pdns_server" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffecd65700 (LWP 1356)]
strlen () at ../sysdeps/x86_64/strlen.S:106
106     ../sysdeps/x86_64/strlen.S: No such file or directory.
(gdb) set pagination 0
(gdb) bt full
#0  strlen () at ../sysdeps/x86_64/strlen.S:106
No locals.
#1  0x00007ffff575c264 in std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator=(char const*) () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
No symbol table info available.
#2  0x0000555555e033d2 in GeoIPBackend::queryCountry (this=0x7fffd80009f0, ret="", gl=0x7fffecd63590, ip="0.0.0.0", gi=...) at geoipbackend.cc:455
No locals.
#3  0x0000555555e04b73 in GeoIPBackend::queryGeoIP (this=0x7fffd80009f0, ip="0.0.0.0", v6=false, attribute=GeoIPBackend::Country, gl=0x7fffecd63590) at geoipbackend.cc:745
        val = ""
        found = false
        gi = @0x7fffe0000a90: {first = 1, second = std::unique_ptr<GeoIPTag> containing 0x7fffe00009c0}
        __for_range = std::vector of length 1, capacity 1 = {{first = 1, second = std::unique_ptr<GeoIPTag> containing 0x7fffe00009c0}}
        __for_begin = {first = 1, second = std::unique_ptr<GeoIPTag> containing 0x7fffe00009c0}
        __for_end = {first = 0, second = std::unique_ptr<GeoIPTag> containing 0x51}
        ret = "unknown"
#4  0x0000555555e04f7f in GeoIPBackend::format2str (this=0x7fffd80009f0, sformat="%co.geo.example.org", ip="0.0.0.0", v6=false, gl=0x7fffecd63c70) at geoipbackend.cc:782
        rep = ""
        nrep = 3
        cur = 0
        last = 0
        t = 1527401153
        tmp_gl = {netmask = 0}
        gtm = {tm_sec = 53, tm_min = 5, tm_hour = 6, tm_mday = 27, tm_mon = 4, tm_year = 118, tm_wday = 0, tm_yday = 146, tm_isdst = 0, tm_gmtoff = 0, tm_zone = 0x7ffff4ee1187 "GMT"}
#5  0x0000555555e02dc0 in GeoIPBackend::lookup (this=0x7fffd80009f0, qtype=..., qdomain=..., pkt_p=0x0, zoneId=-1) at geoipbackend.cc:413
        it = "%co.geo.example.org"
        rl = {d_lock = 0x55555621ec80 <GeoIPBackend::s_state_lock>}
        dom = 0x7fffe000d0e0
        gl = {netmask = 0}
        found = true
        ip = "0.0.0.0"
        v6 = false
        target = {first = {d_storage = {<boost::container::container_detail::basic_string_base<boost::container::new_allocator<char> >> = {static MinInternalBufferChars = 8, static AlignmentOfValueType = 1, static ShortDataOffset = 1, static ZeroCostInternalBufferChars = 23, static UnalignedFinalInternalBufferChars = 23, members_ = {<boost::container::new_allocator<char>> = {<No data fields>}, m_repr = {r = {dummy = "+\003www\003geo\aexample\003org\000\000"}, s = {h = {is_short = 1 '\001', length = 21 '\025'}, data = "\003www\003geo\aexample\003org\000\000"}}}, static InternalBufferChars = <optimized out>, static MinAllocation = <optimized out>}, static InternalBufferChars = <optimized out>, static npos = <optimized out>}}, second = {masks = {root = std::unique_ptr<NetmaskTree<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >::TreeNode> containing 0x7fffe00043a0, _nodes = std::vector of length 2, capacity 2 = {, }, d_cleanup_tree = false}, netmask4 = 0, netmask6 = 0}}
        node = 0x7fffe0000970
        sformat = {d_storage = {<boost::container::container_detail::basic_string_base<boost::container::new_allocator<char> >> = {static MinInternalBufferChars = 8, static AlignmentOfValueType = 1, static ShortDataOffset = 1, static ZeroCostInternalBufferChars = 23, static UnalignedFinalInternalBufferChars = 23, members_ = {<boost::container::new_allocator<char>> = {<No data fields>}, m_repr = {r = {dummy = "\001", '\000' <repeats 22 times>}, s = {h = {is_short = 1 '\001', length = 0 '\000'}, data = '\000' <repeats 22 times>}}}, static InternalBufferChars = <optimized out>, static MinAllocation = <optimized out>}, static InternalBufferChars = <optimized out>, static npos = <optimized out>}}
        rr = {qname = {d_storage = {<boost::container::container_detail::basic_string_base<boost::container::new_allocator<char> >> = {static MinInternalBufferChars = 8, static AlignmentOfValueType = 1, static ShortDataOffset = 1, static ZeroCostInternalBufferChars = 23, static UnalignedFinalInternalBufferChars = 23, members_ = {<boost::container::new_allocator<char>> = {<No data fields>}, m_repr = {r = {dummy = "\002", '\000' <repeats 22 times>}, s = {h = {is_short = 0 '\000', length = 1 '\001'}, data = '\000' <repeats 22 times>}}}, static InternalBufferChars = <optimized out>, static MinAllocation = <optimized out>}, static InternalBufferChars = <optimized out>, static npos = <optimized out>}}, wildcardname = {d_storage = {<boost::container::container_detail::basic_string_base<boost::container::new_allocator<char> >> = {static MinInternalBufferChars = 8, static AlignmentOfValueType = 1, static ShortDataOffset = 1, static ZeroCostInternalBufferChars = 23, static UnalignedFinalInternalBufferChars = 23, members_ = {<boost::container::new_allocator<char>> = {<No data fields>}, m_repr = {r = {dummy = "\000\000\000\000\377\177\000\000\260>\326\354\377\177\000\000\070\207\255UUU\000"}, s = {h = {is_short = 0 '\000', length = 0 '\000'}, data = "\000\000\000\377\177\000\000\260>\326\354\377\177\000\000\070\207\255UUU\000"}}}, static InternalBufferChars = <optimized out>, static MinAllocation = <optimized out>}, static InternalBufferChars = <optimized out>, static npos = <optimized out>}}, content = "", last_modified = 140737166851808, ttl = 3973463920, signttl = 32767, domain_id = -321503504, qtype = {static names = <optimized out>, static initializer = {<No data fields>}, code = 32767}, qclass = 0, scopeMask = 64 '@', auth = 63, disabled = 214}
#6  0x0000555555b44380 in DNSBackend::getSOA (this=0x7fffd80009f0, domain=..., sd=...) at dnsbackend.cc:219
        rr = {qname = {d_storage = {<boost::container::container_detail::basic_string_base<boost::container::new_allocator<char> >> = {static MinInternalBufferChars = 8, static AlignmentOfValueType = 1, static ShortDataOffset = 1, static ZeroCostInternalBufferChars = 23, static UnalignedFinalInternalBufferChars = 23, members_ = {<boost::container::new_allocator<char>> = {<No data fields>}, m_repr = {r = {dummy = "P\t\000\330\377\177\000\000\340\326!VUU\000\000\220@\326\354\377\177\000"}, s = {h = {is_short = 0 '\000', length = 40 '('}, data = "\t\000\330\377\177\000\000\340\326!VUU\000\000\220@\326\354\377\177\000"}}}, static InternalBufferChars = <optimized out>, static MinAllocation = <optimized out>}, static InternalBufferChars = <optimized out>, static npos = <optimized out>}}, wildcardname = {d_storage = {<boost::container::container_detail::basic_string_base<boost::container::new_allocator<char> >> = {static MinInternalBufferChars = 8, static AlignmentOfValueType = 1, static ShortDataOffset = 1, static ZeroCostInternalBufferChars = 23, static UnalignedFinalInternalBufferChars = 23, members_ = {<boost::container::new_allocator<char>> = {<No data fields>}, m_repr = {r = {dummy = "`B\326\354\377\177\000\000\220@\326\354\377\177\000\000f\223\254UUU\000"}, s = {h = {is_short = 0 '\000', length = 48 '0'}, data = "B\326\354\377\177\000\000\220@\326\354\377\177\000\000f\223\254UUU\000"}}}, static InternalBufferChars = <optimized out>, static MinAllocation = <optimized out>}, static InternalBufferChars = <optimized out>, static npos = <optimized out>}}, content = "", last_modified = 0, ttl = 3973464672, signttl = 32767, domain_id = -321503024, qtype = {static names = <optimized out>, static initializer = {<No data fields>}, code = 32767}, qclass = 0, scopeMask = 6 '\006', auth = 111, disabled = 172}
        hits = 21845
#7  0x0000555555b42865 in DNSBackend::getAuth (this=0x7fffd80009f0, target=..., sd=0x7fffecd64970) at dnsbackend.cc:38
No locals.
#8  0x0000555555d4e4ae in UeberBackend::getAuth (this=0x7fffd80008d8, target=..., qtype=..., sd=0x7fffecd64970, cachedOk=true) at ueberbackend.cc:311
        i =
        j = {first = 22, second = {qname = {d_storage = {<boost::container::container_detail::basic_string_base<boost::container::new_allocator<char> >> = {static MinInternalBufferChars = 8, static AlignmentOfValueType = 1, static ShortDataOffset = 1, static ZeroCostInternalBufferChars = 23, static UnalignedFinalInternalBufferChars = 23, members_ = {<boost::container::new_allocator<char>> = {<No data fields>}, m_repr = {r = {dummy = "\001\000\000\000\000\000\000\000www\000\377\177\000\000`\020\000\344\377\177\000"}, s = {h = {is_short = 1 '\001', length = 0 '\000'}, data = "\000\000\000\000\000\000\000www\000\377\177\000\000`\020\000\344\377\177\000"}}}, static InternalBufferChars = <optimized out>, static MinAllocation = <optimized out>}, static InternalBufferChars = <optimized out>, static npos = <optimized out>}}, nameserver = {d_storage = {<boost::container::container_detail::basic_string_base<boost::container::new_allocator<char> >> = {static MinInternalBufferChars = 8, static AlignmentOfValueType = 1, static ShortDataOffset = 1, static ZeroCostInternalBufferChars = 23, static UnalignedFinalInternalBufferChars = 23, members_ = {<boost::container::new_allocator<char>> = {<No data fields>}, m_repr = {r = {dummy = "\001\000\000\330\377\177\000\000\003\000\000\000\000\000\000\000geo\000\377\177\000"}, s = {h = {is_short = 1 '\001', length = 0 '\000'}, data = "\000\000\330\377\177\000\000\003\000\000\000\000\000\000\000geo\000\377\177\000"}}}, static InternalBufferChars = <optimized out>, static MinAllocation = <optimized out>}, static InternalBufferChars = <optimized out>, static npos = <optimized out>}}, hostmaster = {d_storage = {<boost::container::container_detail::basic_string_base<boost::container::new_allocator<char> >> = {static MinInternalBufferChars = 8, static AlignmentOfValueType = 1, static ShortDataOffset = 1, static ZeroCostInternalBufferChars = 23, static UnalignedFinalInternalBufferChars = 23, members_ = {<boost::container::new_allocator<char>> = {<No data fields>}, m_repr = {r = {dummy = "\001\000\000\344\377\177\000\000P\r\000\330\377\177\000\000\a\000\000\000\000\000\000"}, s = {h = {is_short = 1 '\001', length = 0 '\000'}, data = "\000\000\344\377\177\000\000P\r\000\330\377\177\000\000\a\000\000\000\000\000\000"}}}, static InternalBufferChars = <optimized out>, static MinAllocation = <optimized out>}, static InternalBufferChars = <optimized out>, static npos = <optimized out>}}, ttl = 0, serial = 0, refresh = 0, retry = 0, expire = 0, default_ttl = 0, db = , domain_id = -1, scopeMask = 0 '\000'}}
        found = false
        cstat = -1
        shorter = {d_storage = {<boost::container::container_detail::basic_string_base<boost::container::new_allocator<char> >> = {static MinInternalBufferChars = 8, static AlignmentOfValueType = 1, static ShortDataOffset = 1, static ZeroCostInternalBufferChars = 23, static UnalignedFinalInternalBufferChars = 23, members_ = {<boost::container::new_allocator<char>> = {<No data fields>}, m_repr = {r = {dummy = "+\003www\003geo\aexample\003org\000\000"}, s = {h = {is_short = 1 '\001', length = 21 '\025'}, data = "\003www\003geo\aexample\003org\000\000"}}}, static InternalBufferChars = <optimized out>, static MinAllocation = <optimized out>}, static InternalBufferChars = <optimized out>, static npos = <optimized out>}}
        bestmatch = std::vector of length 1, capacity 1 = {{first = 22, second = {qname = {d_storage = {<boost::container::container_detail::basic_string_base<boost::container::new_allocator<char> >> = {static MinInternalBufferChars = 8, static AlignmentOfValueType = 1, static ShortDataOffset = 1, static ZeroCostInternalBufferChars = 23, static UnalignedFinalInternalBufferChars = 23, members_ = {<boost::container::new_allocator<char>> = {<No data fields>}, m_repr = {r = {dummy = "\001\000\000\000\000\000\000\000www\000\377\177\000\000`\020\000\344\377\177\000"}, s = {h = {is_short = 1 '\001', length = 0 '\000'}, data = "\000\000\000\000\000\000\000www\000\377\177\000\000`\020\000\344\377\177\000"}}}, static InternalBufferChars = <optimized out>, static MinAllocation = <optimized out>}, static InternalBufferChars = <optimized out>, static npos = <optimized out>}}, nameserver = {d_storage = {<boost::container::container_detail::basic_string_base<boost::container::new_allocator<char> >> = {static MinInternalBufferChars = 8, static AlignmentOfValueType = 1, static ShortDataOffset = 1, static ZeroCostInternalBufferChars = 23, static UnalignedFinalInternalBufferChars = 23, members_ = {<boost::container::new_allocator<char>> = {<No data fields>}, m_repr = {r = {dummy = "\001\000\000\330\377\177\000\000\003\000\000\000\000\000\000\000geo\000\377\177\000"}, s = {h = {is_short = 1 '\001', length = 0 '\000'}, data = "\000\000\330\377\177\000\000\003\000\000\000\000\000\000\000geo\000\377\177\000"}}}, static InternalBufferChars = <optimized out>, static MinAllocation = <optimized out>}, static InternalBufferChars = <optimized out>, static npos = <optimized out>}}, hostmaster = {d_storage = {<boost::container::container_detail::basic_string_base<boost::container::new_allocator<char> >> = {static MinInternalBufferChars = 8, static AlignmentOfValueType = 1, static ShortDataOffset = 1, static ZeroCostInternalBufferChars = 23, static UnalignedFinalInternalBufferChars = 23, members_ = {<boost::container::new_allocator<char>> = {<No data fields>}, m_repr = {r = {dummy = "\001\000\000\344\377\177\000\000P\r\000\330\377\177\000\000\a\000\000\000\000\000\000"}, s = {h = {is_short = 1 '\001', length = 0 '\000'}, data = "\000\000\344\377\177\000\000P\r\000\330\377\177\000\000\a\000\000\000\000\000\000"}}}, static InternalBufferChars = <optimized out>, static MinAllocation = <optimized out>}, static InternalBufferChars = <optimized out>, static npos = <optimized out>}}, ttl = 0, serial = 0, refresh = 0, retry = 0, expire = 0, default_ttl = 0, db = 0x0, domain_id = -1, scopeMask = 0 '\000'}}}
#9  0x0000555555cc9951 in PacketHandler::doQuestion (this=0x7fffd80008c0, p=0x7fffe4000ef0) at packethandler.cc:1219
        target = {d_storage = {<boost::container::container_detail::basic_string_base<boost::container::new_allocator<char> >> = {static MinInternalBufferChars = 8, static AlignmentOfValueType = 1, static ShortDataOffset = 1, static ZeroCostInternalBufferChars = 23, static UnalignedFinalInternalBufferChars = 23, members_ = {<boost::container::new_allocator<char>> = {<No data fields>}, m_repr = {r = {dummy = "+\003www\003geo\aexample\003org\000\000"}, s = {h = {is_short = 1 '\001', length = 21 '\025'}, data = "\003www\003geo\aexample\003org\000\000"}}}, static InternalBufferChars = <optimized out>, static MinAllocation = <optimized out>}, static InternalBufferChars = <optimized out>, static npos = <optimized out>}}
        rr = {domain_id = -1, scopeMask = 0 '\000', signttl = 0, wildcardname = {d_storage = {<boost::container::container_detail::basic_string_base<boost::container::new_allocator<char> >> = {static MinInternalBufferChars = 8, static AlignmentOfValueType = 1, static ShortDataOffset = 1, static ZeroCostInternalBufferChars = 23, static UnalignedFinalInternalBufferChars = 23, members_ = {<boost::container::new_allocator<char>> = {<No data fields>}, m_repr = {r = {dummy = "\001\000\326\354\377\177\000\000x\227\253UUU\000\000@W:VUU\000"}, s = {h = {is_short = 1 '\001', length = 0 '\000'}, data = "\000\326\354\377\177\000\000x\227\253UUU\000\000@W:VUU\000"}}}, static InternalBufferChars = <optimized out>, static MinAllocation = <optimized out>}, static InternalBufferChars = <optimized out>, static npos = <optimized out>}}, auth = true, dr = {d_name = {d_storage = {<boost::container::container_detail::basic_string_base<boost::container::new_allocator<char> >> = {static MinInternalBufferChars = 8, static AlignmentOfValueType = 1, static ShortDataOffset = 1, static ZeroCostInternalBufferChars = 23, static UnalignedFinalInternalBufferChars = 23, members_ = {<boost::container::new_allocator<char>> = {<No data fields>}, m_repr = {r = {dummy = "\001\000\326\354\377\177\000\000 :;VUU\000\000`I\326\354\377\177\000"}, s = {h = {is_short = 1 '\001', length = 0 '\000'}, data = "\000\326\354\377\177\000\000 :;VUU\000\000`I\326\354\377\177\000"}}}, static InternalBufferChars = <optimized out>, static MinAllocation = <optimized out>}, static InternalBufferChars = <optimized out>, static npos = <optimized out>}}, d_content = std::shared_ptr (empty) 0x0, d_type = 0, d_class = 1, d_ttl = 0, d_clen = 0, d_place = DNSResourceRecord::ANSWER}}
        sd = {qname = {d_storage = {<boost::container::container_detail::basic_string_base<boost::container::new_allocator<char> >> = {static MinInternalBufferChars = 8, static AlignmentOfValueType = 1, static ShortDataOffset = 1, static ZeroCostInternalBufferChars = 23, static UnalignedFinalInternalBufferChars = 23, members_ = {<boost::container::new_allocator<char>> = {<No data fields>}, m_repr = {r = {dummy = "\001\000\326\354\377\177\000\000\210\325!VUU\000\000\240I\326\354\377\177\000"}, s = {h = {is_short = 1 '\001', length = 0 '\000'}, data = "\000\326\354\377\177\000\000\210\325!VUU\000\000\240I\326\354\377\177\000"}}}, static InternalBufferChars = <optimized out>, static MinAllocation = <optimized out>}, static InternalBufferChars = <optimized out>, static npos = <optimized out>}}, nameserver = {d_storage = {<boost::container::container_detail::basic_string_base<boost::container::new_allocator<char> >> = {static MinInternalBufferChars = 8, static AlignmentOfValueType = 1, static ShortDataOffset = 1, static ZeroCostInternalBufferChars = 23, static UnalignedFinalInternalBufferChars = 23, members_ = {<boost::container::new_allocator<char>> = {<No data fields>}, m_repr = {r = {dummy = "\001\000\253UUU\000\000@K\326\354\377\177\000\000 :;VUU\000"}, s = {h = {is_short = 1 '\001', length = 0 '\000'}, data = "\000\253UUU\000\000@K\326\354\377\177\000\000 :;VUU\000"}}}, static InternalBufferChars = <optimized out>, static MinAllocation = <optimized out>}, static InternalBufferChars = <optimized out>, static npos = <optimized out>}}, hostmaster = {d_storage = {<boost::container::container_detail::basic_string_base<boost::container::new_allocator<char> >> = {static MinInternalBufferChars = 8, static AlignmentOfValueType = 1, static ShortDataOffset = 1, static ZeroCostInternalBufferChars = 23, static UnalignedFinalInternalBufferChars = 23, members_ = {<boost::container::new_allocator<char>> = {<No data fields>}, m_repr = {r = {dummy = "\001\000\326\354\377\177\000\000\023\200\253UUU\000\000\340I\326\354\377\177\000"}, s = {h = {is_short = 1 '\001', length = 0 '\000'}, data = "\000\326\354\377\177\000\000\023\200\253UUU\000\000\340I\326\354\377\177\000"}}}, static InternalBufferChars = <optimized out>, static MinAllocation = <optimized out>}, static InternalBufferChars = <optimized out>, static npos = <optimized out>}}, ttl = 0, serial = 0, refresh = 0, retry = 0, expire = 0, default_ttl = 0, db = 0x0, domain_id = -1, scopeMask = 0 '\000'}
        soa = ""
        retargetcount = 0
        authSet = std::set with 0 elements
        rrset = std::vector of length 0, capacity 0
        weDone = false
        weRedirected = false
        weHaveUnauth = false
        haveAlias = {d_storage = {<boost::container::container_detail::basic_string_base<boost::container::new_allocator<char> >> = {static MinInternalBufferChars = 8, static AlignmentOfValueType = 1, static ShortDataOffset = 1, static ZeroCostInternalBufferChars = 23, static UnalignedFinalInternalBufferChars = 23, members_ = {<boost::container::new_allocator<char>> = {<No data fields>}, m_repr = {r = {dummy = "\001\000\326\354\377\177\000\000Mo\253UUU\000\000\000G\326\354\377\177\000"}, s = {h = {is_short = 1 '\001', length = 0 '\000'}, data = "\000\326\354\377\177\000\000Mo\253UUU\000\000\000G\326\354\377\177\000"}}}, static InternalBufferChars = <optimized out>, static MinAllocation = <optimized out>}, static InternalBufferChars = <optimized out>, static npos = <optimized out>}}
        r = 0x7fffd8000a90
        noCache = false
#10 0x0000555555cc7965 in PacketHandler::question (this=0x7fffd80008c0, p=0x7fffe4000ef0) at packethandler.cc:913
        ret = 0x7fffd80008c0
#11 0x0000555555b2051e in MultiThreadDistributor<DNSPacket, DNSPacket, PacketHandler>::makeThread (p=0x7fffe40008e0) at distributor.hh:207
        QD = 0x7fffe40011a0
        a = 0x0
        allowRetry = true
        b = 0x7fffd80008c0
        queuetimeout = 1500
        us = 0x7fffe40008e0
        ournum = 0
#12 0x00007ffff6e9e6ba in start_thread (arg=0x7fffecd65700) at pthread_create.c:333
        __res = <optimized out>
        pd = 0x7fffecd65700
        now = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140737166857984, -7742331932141763691, 0, 140737183638415, 140737166858688, 0, 7742373357576176533, 7742351809032536981}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <optimized out>
        pagesize_m1 = <optimized out>
        sp = <optimized out>
        freesize = <optimized out>
        __PRETTY_FUNCTION__ = "start_thread"
#13 0x00007ffff4e5a41d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
No locals.

Environment

  • Operating system: Ubuntu 16.04 LTS
  • Software version: 4.1.3
  • Software source: repository

Steps to reproduce

launch+=geoip
geoip-database-files=/opt/GeoLite/GeoLite2-City_20171205/GeoLite2-City.mmdb
geoip-zones-file=/etc/pdns/geoip.yaml
domains:
- domain: geo.example.org
  ttl: 60
  records:
    geo.example.org:
       - soa: ns.example.org. geoman.example.org. 1 7200 3600 86400 60
       - ns:  ns.example.org.
    deu.geo.example.org:
       - a: 192.0.0.2
       - txt: Guten Tag
    esp.geo.example.org:
       - a: 192.0.0.10
       - txt: Muy buenos dias
       - loc: 40 8 43.041 N 3 21 42.539 W 714m 10m 100m 10m
    blah.geo.example.org:
       - a: 1.1.1.1
    "*.geo.example.org":
       - a: 127.0.0.53
       - txt: I don't know exactly where you are
  services:
     www.geo.example.org: '%co.geo.example.org'
  1. Use provided config
  2. dig www.geo.example.org

Expected behaviour

Expected to see valid response.

Actual behaviour

Software crashes

Other information

Found by Chris Jones cpjones44@gmail.com

@cmouse

This comment has been minimized.

Show comment
Hide comment
@cmouse

cmouse May 27, 2018

Contributor

Caused by failure to handle unsupported data file gracefully.

Contributor

cmouse commented May 27, 2018

Caused by failure to handle unsupported data file gracefully.

@dvershinin

This comment has been minimized.

Show comment
Hide comment
@dvershinin

dvershinin Jul 16, 2018

Stumbled upon this when using latest stable 4.1 RPM version.
Getting a crash with .mmdb files.
So are .mmdb supported or not?

dvershinin commented Jul 16, 2018

Stumbled upon this when using latest stable 4.1 RPM version.
Getting a crash with .mmdb files.
So are .mmdb supported or not?

@cmouse

This comment has been minimized.

Show comment
Hide comment
@cmouse

cmouse Jul 16, 2018

Contributor

mmdb is not supported in 4.1.3, only in 4.2.

Contributor

cmouse commented Jul 16, 2018

mmdb is not supported in 4.1.3, only in 4.2.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment