Actions
Bug #5086
closedndnsec-cert-gen segmentation fault
Start date:
Due date:
% Done:
100%
Estimated time:
Tags:
Description
Spotted by John on spurs.
Thread 1 "ndnsec" received signal SIGSEGV, Segmentation fault.
0xb7c93699 in std::__shared_ptr<ndn::Buffer const, (__gnu_cxx::_Lock_policy)2>::__shared_ptr(std::__shared_ptr<ndn::Buffer const, (__gnu_cxx::_Lock_policy)2>&&) (__r=<optimized out>, this=<optimized out>) at /usr/include/c++/5/bits/shared_ptr_base.h:936
936 __r._M_ptr = 0;
(gdb) bt full
#0 0xb7c93699 in std::__shared_ptr<ndn::Buffer const, (__gnu_cxx::_Lock_policy)2>::__shared_ptr(std::__shared_ptr<ndn::Buffer const, (__gnu_cxx::_Lock_policy)2>&&) (__r=<optimized out>, this=<optimized out>) at /usr/include/c++/5/bits/shared_ptr_base.h:936
No locals.
#1 std::shared_ptr<ndn::Buffer const>::shared_ptr(std::shared_ptr<ndn::Buffer const>&&) (__r=<optimized out>,
this=<optimized out>) at /usr/include/c++/5/bits/shared_ptr.h:230
No locals.
#2 ndn::Block::Block (this=0xbfffe4f4, type=23, value=std::shared_ptr (count -1616910249, weak -997982221) 0xbfffe414)
at ../ndn-cxx/encoding/block.cpp:145
No locals.
#3 0xb7e00db6 in ndn::security::v2::KeyChain::sign (this=0xbfffe7d8,
buf=0x80fc684 "\a#\b\003tmp\b\003KEY\b\b\252$v/\250a8\206\b\002NA\b", <incomplete sequence \375>, size=428, keyName=...,
digestAlgorithm=ndn::DigestAlgorithm::SHA256) at ../ndn-cxx/security/v2/key-chain.cpp:706
No locals.
#4 0xb7e05e2f in ndn::security::v2::KeyChain::sign (this=0xbfffe7d8, data=..., params=...)
at ../ndn-cxx/security/v2/key-chain.cpp:461
keyName = {static npos = 4294967295, m_wire = {m_buffer = std::shared_ptr (count 39, weak 0) 0x80d7fa4,
m_begin = 7 '\a', m_end = 0 '\000', m_valueBegin = 8 '\b', m_valueEnd = 0 '\000', m_type = 7, m_size = 33,
m_elements = std::vector of length 5, capacity 5 = {{m_buffer = std::shared_ptr (count 39, weak 0) 0x80d7fa4,
m_begin = 8 '\b', m_end = 8 '\b', m_valueBegin = 110 'n', m_valueEnd = 8 '\b', m_type = 8, m_size = 5,
m_elements = std::vector of length 0, capacity 0}, {m_buffer = std::shared_ptr (count 39, weak 0) 0x80d7fa4,
m_begin = 8 '\b', m_end = 8 '\b', m_valueBegin = 101 'e', m_valueEnd = 8 '\b', m_type = 8, m_size = 5,
m_elements = std::vector of length 0, capacity 0}, {m_buffer = std::shared_ptr (count 39, weak 0) 0x80d7fa4,
m_begin = 8 '\b', m_end = 8 '\b', m_valueBegin = 117 'u', m_valueEnd = 8 '\b', m_type = 8, m_size = 6,
m_elements = std::vector of length 0, capacity 0}, {m_buffer = std::shared_ptr (count 39, weak 0) 0x80d7fa4,
m_begin = 8 '\b', m_end = 8 '\b', m_valueBegin = 75 'K', m_valueEnd = 8 '\b', m_type = 8, m_size = 5,
m_elements = std::vector of length 0, capacity 0}, {m_buffer = std::shared_ptr (count 39, weak 0) 0x80d7fa4,
m_begin = 8 '\b', m_end = 0 '\000', m_valueBegin = 241 '\361', m_valueEnd = 0 '\000', m_type = 8, m_size = 10,
m_elements = std::vector of length 0, capacity 0}}}}
sigInfo = {m_type = 3, m_hasKeyLocator = true, m_keyLocator = {m_locator = {data = {
__data = "\244\177\r\b\230\177\r\bX\246\017\by\246\017\bZ\246\017\by\246\017\b\a\000\000\000!\000\000\000\000\236\017\bܞ\017\bܞ\017\b", __align = {<No data fields>}}, type_index = 1 '\001'}, m_wire = {m_buffer = std::shared_ptr (empty) 0x0,
m_begin = <error reading variable>},
m_otherTlvs = {<std::__cxx11::_List_base<ndn::Block, std::allocator<ndn::Block> >> = {
_M_impl = {<std::allocator<std::_List_node<ndn::Block> >> = {<__gnu_cxx::new_allocator<std::_List_node<ndn::Block> >---Type <return> to continue, or q <return> to quit---
> = {<No data fields>}, <No data fields>}, _M_node = {<std::__detail::_List_node_base> = {_M_next = 0x80f9ee0,
_M_prev = 0x80f9ee0}, _M_data = 1}}}, <No data fields>}, m_wire = {m_buffer = std::shared_ptr (empty) 0x0,
m_begin = <error reading variable>}
encoder = {<ndn::encoding::Encoder> = {<boost::noncopyable_::noncopyable> = {<No data fields>},
m_buffer = std::shared_ptr (count 1, weak 0) 0x80f9adc, m_begin = 7 '\a', m_end = 0 '\000'}, <No data fields>}
sigValue = {m_buffer = std::shared_ptr (empty) 0x0, m_begin = 0 '\000', m_end = 1 '\001', m_valueBegin = 220 '\334',
m_valueEnd = <error reading variable>
#5 0x0809205d in ndn::ndnsec::ndnsec_cert_gen (argc=4, argv=0xbffff548) at ../tools/ndnsec/cert-gen.cpp:165
requestFile = "f"
notBeforeStr = ""
notAfterStr = ""
infos = std::vector of length 0, capacity 0
signId = {static npos = 4294967295, m_wire = {m_buffer = std::shared_ptr (count 20, weak 0) 0x80f709c, m_begin = 7 '\a',
m_end = 0 '\000', m_valueBegin = 8 '\b', m_valueEnd = 0 '\000', m_type = 7, m_size = 18,
m_elements = std::vector of length 3, capacity 4 = {{m_buffer = std::shared_ptr (count 20, weak 0) 0x80f709c,
m_begin = 8 '\b', m_end = 8 '\b', m_valueBegin = 110 'n', m_valueEnd = 8 '\b', m_type = 8, m_size = 5,
m_elements = std::vector of length 0, capacity 0}, {m_buffer = std::shared_ptr (count 20, weak 0) 0x80f709c,
m_begin = 8 '\b', m_end = 8 '\b', m_valueBegin = 101 'e', m_valueEnd = 8 '\b', m_type = 8, m_size = 5,
m_elements = std::vector of length 0, capacity 0}, {m_buffer = std::shared_ptr (count 20, weak 0) 0x80f709c,
m_begin = 8 '\b', m_end = 0 '\000', m_valueBegin = 117 'u', m_valueEnd = 0 '\000', m_type = 8, m_size = 6,
m_elements = std::vector of length 0, capacity 0}}}}
issuerId = "NA"
description = {static m_default_line_length = 80,
m_caption = "Usage: ndnsec cert-gen [-h] [-S TIMESTAMP] [-E TIMESTAMP] [-I INFO]...\n", ' ' <repeats 23 times>, "[-s IDENTITY] [-i ISSUER] [-r] FILE\n\nOptions", m_line_length = 80, m_min_description_length = 40,
m_options = std::vector of length 7, capacity 8 = {{px = 0x80d4ef0, pn = {pi_ = 0x80d4f80}}, {px = 0x80d4fb8, pn = {
pi_ = 0x80d5060}}, {px = 0x80d5090, pn = {pi_ = 0x80d5158}}, {px = 0x80d5198, pn = {pi_ = 0x80d5268}}, {
px = 0x80d5280, pn = {pi_ = 0x80d53d8}}, {px = 0x80d5438, pn = {pi_ = 0x80d54c0}}, {px = 0x80d54d8, pn = {
pi_ = 0x80d5588}}}, belong_to_group = std::vector<bool> of length 7, capacity 32 = {0, 0, 0, 0, 0, 0, 0},
groups = std::vector of length 0, capacity 0}
p = {m_names = std::vector of length 1, capacity 1 = {"request"}, m_trailing = ""}
vm = <incomplete type>
additionalDescription = {m_info = std::map with 0 elements, m_wire = {m_buffer = std::shared_ptr (empty) 0x0,
m_begin = <error reading variable>}
---Type <return> to continue, or q <return> to quit---
notBefore = {d_ = {rep_ = 1582917077859916499}}
notAfter = {d_ = {rep_ = 1614453077859916499}}
keyChain = {<boost::noncopyable_::noncopyable> = {<No data fields>},
m_pib = std::unique_ptr<ndn::security::pib::Pib> containing 0x80f8988,
m_tpm = std::unique_ptr<ndn::security::tpm::Tpm> containing 0x80d8418, static s_defaultPibLocator = <optimized out>,
static s_defaultTpmLocator = <optimized out>}
certRequest = {<ndn::Data> = {<ndn::PacketBase> = {<ndn::TagHost> = {
m_tags = std::map with 0 elements}, <No data fields>}, <std::enable_shared_from_this<ndn::Data>> = {
_M_weak_this = std::weak_ptr (empty) 0x0}, m_name = {static npos = 4294967295, m_wire = {
m_buffer = std::shared_ptr (count 35, weak 0) 0x80f63a4, m_begin = 7 '\a', m_end = 20 '\024',
m_valueBegin = 8 '\b', m_valueEnd = 20 '\024', m_type = 7, m_size = 39,
m_elements = std::vector of length 5, capacity 5 = {{m_buffer = std::shared_ptr (count 35, weak 0) 0x80f63a4,
m_begin = 8 '\b', m_end = 8 '\b', m_valueBegin = 116 't', m_valueEnd = 8 '\b', m_type = 8, m_size = 5,
m_elements = std::vector of length 0, capacity 0}, {m_buffer = std::shared_ptr (count 35, weak 0) 0x80f63a4,
m_begin = 8 '\b', m_end = 8 '\b', m_valueBegin = 75 'K', m_valueEnd = 8 '\b', m_type = 8, m_size = 5,
m_elements = std::vector of length 0, capacity 0}, {m_buffer = std::shared_ptr (count 35, weak 0) 0x80f63a4,
m_begin = 8 '\b', m_end = 8 '\b', m_valueBegin = 170 '\252', m_valueEnd = 8 '\b', m_type = 8, m_size = 10,
m_elements = std::vector of length 0, capacity 0}, {m_buffer = std::shared_ptr (count 35, weak 0) 0x80f63a4,
m_begin = 8 '\b', m_end = 8 '\b', m_valueBegin = 115 's', m_valueEnd = 8 '\b', m_type = 8, m_size = 6,
m_elements = std::vector of length 0, capacity 0}, {m_buffer = std::shared_ptr (count 35, weak 0) 0x80f63a4,
m_begin = 8 '\b', m_end = 20 '\024', m_valueBegin = 253 '\375', m_valueEnd = 20 '\024', m_type = 8,
m_size = 11, m_elements = std::vector of length 0, capacity 0}}}}, m_metaInfo = {m_type = 2,
m_freshnessPeriod = {rep_ = 3600000}, m_finalBlockId = {has_value_ = false, contained = {data = {
__data = '\000' <repeats 43 times>, __align = {<No data fields>}}}},
m_appMetaInfo = {<std::__cxx11::_List_base<ndn::Block, std::allocator<ndn::Block> >> = {
_M_impl = {<std::allocator<std::_List_node<ndn::Block> >> = {<__gnu_cxx::new_allocator<std::_List_node<ndn::Block> >> = {<No data fields>}, <No data fields>}, _M_node = {<std::__detail::_List_node_base> = {_M_next = 0xbfffee50,
_M_prev = 0xbfffee50}, _M_data = 0}}}, <No data fields>}, m_wire = {
m_buffer = std::shared_ptr (count 35, weak 0) 0x80f63a4, m_begin = 20 '\024', m_end = 21 '\025',
m_valueBegin = 24 '\030', m_valueEnd = 21 '\025', m_type = 20, m_size = 11,
m_elements = std::vector of length 2, capacity 2 = {{m_buffer = std::shared_ptr (count 35, weak 0) 0x80f63a4,
m_begin = 24 '\030', m_end = 25 '\031', m_valueBegin = 2 '\002', m_valueEnd = 25 '\031', m_type = 24,
m_size = 3, m_elements = std::vector of length 0, capacity 0}, {
m_buffer = std::shared_ptr (count 35, weak 0) 0x80f63a4, m_begin = 25 '\031', m_end = 21 '\025',
---Type <return> to continue, or q <return> to quit---
m_valueBegin = 0 '\000', m_valueEnd = 21 '\025', m_type = 25, m_size = 6,
m_elements = std::vector of length 0, capacity 0}}}}, m_content = {
m_buffer = std::shared_ptr (count 35, weak 0) 0x80f63a4, m_begin = 21 '\025', m_end = 22 '\026',
m_valueBegin = 48 '0', m_valueEnd = 22 '\026', m_type = 21, m_size = 298,
m_elements = std::vector of length 0, capacity 0}, m_signature = {m_info = {m_type = 1, m_hasKeyLocator = true,
m_keyLocator = {m_locator = {data = {
__data = "\244c\017\b\230c\017\b\017b\017\b%b\017\b\021b\017\b%b\017\b\a\000\000\000\026\000\000\000\340n\017\bdo\017\bdo\017\b", __align = {<No data fields>}}, type_index = 1 '\001'}, m_wire = {
m_buffer = std::shared_ptr (count 35, weak 0) 0x80f63a4, m_begin = 28 '\034', m_end = 253 '\375',
m_valueBegin = 7 '\a', m_valueEnd = 253 '\375', m_type = 28, m_size = 24,
m_elements = std::vector of length 1, capacity 1 = {{
m_buffer = std::shared_ptr (count 35, weak 0) 0x80f63a4, m_begin = 7 '\a', m_end = 253 '\375',
m_valueBegin = 8 '\b', m_valueEnd = 253 '\375', m_type = 7, m_size = 22,
m_elements = std::vector of length 0, capacity 0}}}},
m_otherTlvs = {<std::__cxx11::_List_base<ndn::Block, std::allocator<ndn::Block> >> = {
_M_impl = {<std::allocator<std::_List_node<ndn::Block> >> = {<__gnu_cxx::new_allocator<std::_List_node<ndn::Block> >> = {<No data fields>}, <No data fields>}, _M_node = {<std::__detail::_List_node_base> = {_M_next = 0x80d8130,
_M_prev = 0x80d8130}, _M_data = 1}}}, <No data fields>}, m_wire = {
m_buffer = std::shared_ptr (count 35, weak 0) 0x80f63a4, m_begin = 22 '\026', m_end = 23 '\027',
m_valueBegin = 27 '\033', m_valueEnd = 23 '\027', m_type = 22, m_size = 71,
m_elements = std::vector of length 3, capacity 3 = {{m_buffer = std::shared_ptr (count 35, weak 0) 0x80f63a4,
m_begin = 27 '\033', m_end = 28 '\034', m_valueBegin = 1 '\001', m_valueEnd = 28 '\034', m_type = 27,
m_size = 3, m_elements = std::vector of length 0, capacity 0}, {
m_buffer = std::shared_ptr (count 35, weak 0) 0x80f63a4, m_begin = 28 '\034', m_end = 253 '\375',
m_valueBegin = 7 '\a', m_valueEnd = 253 '\375', m_type = 28, m_size = 24,
m_elements = std::vector of length 0, capacity 0}, {
m_buffer = std::shared_ptr (count 35, weak 0) 0x80f63a4, m_begin = 253 '\375', m_end = 23 '\027',
m_valueBegin = 253 '\375', m_valueEnd = 23 '\027', m_type = 253, m_size = 42,
m_elements = std::vector of length 0, capacity 0}}}}, m_value = {
m_buffer = std::shared_ptr (count 35, weak 0) 0x80f63a4, m_begin = 23 '\027', m_end = 0 '\000',
m_valueBegin = 195 '\303', m_valueEnd = 0 '\000', m_type = 23, m_size = 260,
m_elements = std::vector of length 0, capacity 0}}, m_wire = {
m_buffer = std::shared_ptr (count 35, weak 0) 0x80f63a4, m_begin = 6 '\006', m_end = 0 '\000',
m_valueBegin = 7 '\a', m_valueEnd = 0 '\000', m_type = 6, m_size = 683,
---Type <return> to continue, or q <return> to quit---
m_elements = std::vector of length 5, capacity 5 = {{m_buffer = std::shared_ptr (count 35, weak 0) 0x80f63a4,
m_begin = 7 '\a', m_end = 20 '\024', m_valueBegin = 8 '\b', m_valueEnd = 20 '\024', m_type = 7, m_size = 39,
m_elements = std::vector of length 0, capacity 0}, {m_buffer = std::shared_ptr (count 35, weak 0) 0x80f63a4,
m_begin = 20 '\024', m_end = 21 '\025', m_valueBegin = 24 '\030', m_valueEnd = 21 '\025', m_type = 20,
m_size = 11, m_elements = std::vector of length 0, capacity 0}, {
m_buffer = std::shared_ptr (count 35, weak 0) 0x80f63a4, m_begin = 21 '\025', m_end = 22 '\026',
m_valueBegin = 48 '0', m_valueEnd = 22 '\026', m_type = 21, m_size = 298,
m_elements = std::vector of length 0, capacity 0}, {m_buffer = std::shared_ptr (count 35, weak 0) 0x80f63a4,
m_begin = 22 '\026', m_end = 23 '\027', m_valueBegin = 27 '\033', m_valueEnd = 23 '\027', m_type = 22,
m_size = 71, m_elements = std::vector of length 0, capacity 0}, {
m_buffer = std::shared_ptr (count 35, weak 0) 0x80f63a4, m_begin = 23 '\027', m_end = 0 '\000',
m_valueBegin = 195 '\303', m_valueEnd = 0 '\000', m_type = 23, m_size = 260,
m_elements = std::vector of length 0, capacity 0}}}, m_fullName = {static npos = 4294967295, m_wire = {
m_buffer = std::shared_ptr (empty) 0x0, m_begin = <error reading variable>}}, static VERSION_OFFSET = -1,
static ISSUER_ID_OFFSET = -2, static KEY_COMPONENT_OFFSET = -4, static KEY_ID_OFFSET = -3,
static MIN_CERT_NAME_LENGTH = 4, static MIN_KEY_NAME_LENGTH = 2, static KEY_COMPONENT = {<ndn::Block> = {
m_buffer = std::shared_ptr (count 1, weak 0) 0x80d32dc, m_begin = 8 '\b', m_end = 119 'w', m_valueBegin = 75 'K',
m_valueEnd = 119 'w', m_type = 8, m_size = 5, m_elements = std::vector of length 0, capacity 0}, <No data fields>}}
keyContent = {<std::vector<unsigned char, std::allocator<unsigned char> >> = std::vector of length 294, capacity 294 = {
48 '0', 130 '\202', 1 '\001', 34 '"', 48 '0', 13 '\r', 6 '\006', 9 '\t', 42 '*', 134 '\206', 72 'H', 134 '\206',
247 '\367', 13 '\r', 1 '\001', 1 '\001', 1 '\001', 5 '\005', 0 '\000', 3 '\003', 130 '\202', 1 '\001', 15 '\017',
0 '\000', 48 '0', 130 '\202', 1 '\001', 10 '\n', 2 '\002', 130 '\202', 1 '\001', 1 '\001', 0 '\000', 239 '\357',
15 '\017', 246 '\366', 16 '\020', 81 'Q', 255 '\377', 232 '\350', 32 ' ', 171 '\253', 177 '\261', 18 '\022',
182 '\266', 19 '\023', 111 'o', 155 '\233', 184 '\270', 81 'Q', 164 '\244', 216 '\330', 68 'D', 252 '\374',
1 '\001', 240 '\360', 221 '\335', 129 '\201', 97 'a', 244 '\364', 99 'c', 26 '\032', 126 '~', 207 '\317', 77 'M',
183 '\267', 98 'b', 116 't', 96 '`', 182 '\266', 141 '\215', 134 '\206', 38 '&', 11 '\v', 86 'V', 179 '\263',
157 '\235', 103 'g', 142 '\216', 40 '(', 47 '/', 21 '\025', 44 ',', 62 '>', 151 '\227', 129 '\201', 68 'D', 122 'z',
214 '\326', 49 '1', 223 '\337', 164 '\244', 30 '\036', 45 '-', 100 'd', 183 '\267', 229 '\345', 161 '\241', 40 '(',
90 'Z', 218 '\332', 26 '\032', 15 '\017', 201 '\311', 213 '\325', 162 '\242', 194 '\302', 112 'p', 247 '\367',
128 '\200', 146 '\222', 7 '\a', 196 '\304', 143 '\217', 146 '\222', 120 'x', 232 '\350', 250 '\372', 225 '\341',
88 'X', 7 '\a', 5 '\005', 77 'M', 131 '\203', 191 '\277', 240 '\360', 82 'R', 119 'w', 92 '\\', 126 '~', 43 '+',
235 '\353', 223 '\337', 214 '\326', 105 'i', 234 '\352', 160 '\240', 136 '\210', 154 '\232', 96 '`', 43 '+',
235 '\353', 252 '\374', 204 '\314', 112 'p', 21 '\025', 218 '\332', 29 '\035', 149 '\225', 94 '^', 158 '\236',
130 '\202', 82 'R', 231 '\347', 151 '\227', 181 '\265', 146 '\222', 38 '&', 208 '\320', 104 'h', 155 '\233', 38 '&',
---Type <return> to continue, or q <return> to quit---
161 '\241', 114 'r', 31 '\037', 109 'm', 5 '\005', 166 '\246', 1 '\001', 227 '\343', 31 '\037', 91 '[', 83 'S',
175 '\257', 62 '>', 188 '\274', 229 '\345', 128 '\200', 169 '\251', 148 '\224', 44 ',', 116 't', 10 '\n',
146 '\222', 167 '\247', 153 '\231', 213 '\325', 39 '\'', 132 '\204', 128 '\200', 166 '\246', 54 '6', 11 '\v',
53 '5', 64 '@', 227 '\343', 210 '\322', 212 '\324', 166 '\246', 231 '\347'...}, <No data fields>}
pubKey = {<boost::noncopyable_::noncopyable> = {<No data fields>},
m_impl = std::unique_ptr<ndn::security::transform::PublicKey::Impl> containing 0x80d86a8}
certName = {static npos = 4294967295, m_wire = {m_buffer = std::shared_ptr (empty) 0x0,
m_begin = <error reading variable>}
cert = {<ndn::Data> = {<ndn::PacketBase> = {<ndn::TagHost> = {
m_tags = std::map with 0 elements}, <No data fields>}, <std::enable_shared_from_this<ndn::Data>> = {
_M_weak_this = std::weak_ptr (empty) 0x0}, m_name = {static npos = 4294967295, m_wire = {
m_buffer = std::shared_ptr (empty) 0x0, m_begin = <error reading variable>}, m_metaInfo = {m_type = 2,
m_freshnessPeriod = {rep_ = 3600000}, m_finalBlockId = {has_value_ = false, contained = {data = {
__data = '\000' <repeats 43 times>, __align = {<No data fields>}}}},
m_appMetaInfo = {<std::__cxx11::_List_base<ndn::Block, std::allocator<ndn::Block> >> = {
_M_impl = {<std::allocator<std::_List_node<ndn::Block> >> = {<__gnu_cxx::new_allocator<std::_List_node<ndn::Block> >> = {<No data fields>}, <No data fields>}, _M_node = {<std::__detail::_List_node_base> = {_M_next = 0xbffff268,
_M_prev = 0xbffff268}, _M_data = 0}}}, <No data fields>}, m_wire = {
m_buffer = std::shared_ptr (empty) 0x0, m_begin = <error reading variable>}, m_content = {
m_buffer = std::shared_ptr (count 35, weak 0) 0x80f63a4, m_begin = 21 '\025', m_end = 22 '\026',
m_valueBegin = 48 '0', m_valueEnd = 22 '\026', m_type = 21, m_size = 298,
m_elements = std::vector of length 0, capacity 0}, m_signature = {m_info = {m_type = 3, m_hasKeyLocator = true,
m_keyLocator = {m_locator = {data = {
__data = "\244\177\r\b\230\177\r\bX\246\017\by\246\017\bZ\246\017\by\246\017\b\a\000\000\000!\000\000\000\200\246\017\b\\\247\017\b\\\247\017\b", __align = {<No data fields>}}, type_index = 1 '\001'}, m_wire = {
m_buffer = std::shared_ptr (empty) 0x0, m_begin = <error reading variable>},
m_otherTlvs = {<std::__cxx11::_List_base<ndn::Block, std::allocator<ndn::Block> >> = {
_M_impl = {<std::allocator<std::_List_node<ndn::Block> >> = {<__gnu_cxx::new_allocator<std::_List_node<ndn::Block> >> = {<No data fields>}, <No data fields>}, _M_node = {<std::__detail::_List_node_base> = {_M_next = 0x80f9f18,
_M_prev = 0x80f9f18}, _M_data = 1}}}, <No data fields>}, m_wire = {
m_buffer = std::shared_ptr (count 1, weak 0) 0x80f9494, m_begin = 22 '\026', m_end = 15 '\017',
m_valueBegin = 27 '\033', m_valueEnd = 15 '\017', m_type = 22, m_size = 82,
m_elements = std::vector of length 0, capacity 0}}, m_value = {m_buffer = std::shared_ptr (empty) 0x0,
m_begin = <error reading variable>}, m_wire = {m_buffer = std::shared_ptr (empty) 0x0,
---Type <return> to continue, or q <return> to quit---
m_begin = <error reading variable>, m_fullName = {static npos = 4294967295, m_wire = {
m_buffer = std::shared_ptr (empty) 0x0, m_begin = <error reading variable>}}, static VERSION_OFFSET = -1,
static ISSUER_ID_OFFSET = -2, static KEY_COMPONENT_OFFSET = -4, static KEY_ID_OFFSET = -3,
static MIN_CERT_NAME_LENGTH = 4, static MIN_KEY_NAME_LENGTH = 2, static KEY_COMPONENT = {<ndn::Block> = {
m_buffer = std::shared_ptr (count 1, weak 0) 0x80d32dc, m_begin = 8 '\b', m_end = 119 'w', m_valueBegin = 75 'K',
m_valueEnd = 119 'w', m_type = 8, m_size = 5, m_elements = std::vector of length 0, capacity 0}, <No data fields>}}
signatureInfo = {m_type = -1, m_hasKeyLocator = false, m_keyLocator = {m_locator = {data = {
__data = "8\233\240\267\235\273\223\034=F\376\267\001\000\000\000\001\000\000\000H\303K\267B\003\000\000\030&L\267\070\233\240\267\304\354\377\277`?\376\267", __align = {<No data fields>}}, type_index = 0 '\000'}, m_wire = {
m_buffer = std::shared_ptr (empty) 0x0, m_begin = <error reading variable>},
m_otherTlvs = {<std::__cxx11::_List_base<ndn::Block, std::allocator<ndn::Block> >> = {
_M_impl = {<std::allocator<std::_List_node<ndn::Block> >> = {<__gnu_cxx::new_allocator<std::_List_node<ndn::Block> >> = {<No data fields>}, <No data fields>}, _M_node = {<std::__detail::_List_node_base> = {_M_next = 0x80f6ff8,
_M_prev = 0x80f6ff8}, _M_data = 1}}}, <No data fields>}, m_wire = {m_buffer = std::shared_ptr (empty) 0x0,
m_begin = <error reading variable>}
identity = {m_impl = std::weak_ptr (count 1, weak 2) 0x80d75a4}
wire = <optimized out>
#6 0x08070f84 in main (argc=5, argv=0xbffff544) at ../tools/ndnsec/main.cpp:72
command = "cert-gen"
Updated by Davide Pesavento almost 5 years ago
- Category changed from Tools to Security
Actually, the bug is in KeyChain::sign
, which doesn't check for nullptr
.
https://github.com/named-data/ndn-cxx/blob/bc17d950e03a156ce291b35392e544f58fb49fcd/ndn-cxx/security/v2/key-chain.cpp#L706
Updated by Alex Afanasyev over 4 years ago
- Status changed from New to Code review
- Assignee set to Alex Afanasyev
- % Done changed from 0 to 100
Updated by Davide Pesavento over 4 years ago
- Is duplicate of Bug #4585: Improve sanity checking and error reporting in KeyChain and TPM (was: Producer example segfaults) added
Updated by Alex Afanasyev over 4 years ago
- Tags changed from security to security, bug
Updated by Davide Pesavento over 4 years ago
- Tags changed from security, bug to security
- Status changed from Code review to Closed
Actions