Actions
Bug #20774
closedrgw: uninitialized memory is accessed during creation of bucket's metadata
% Done:
0%
Source:
Tags:
Backport:
kraken,jewel
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):
Description
Valgrind reports:
<error> <unique>0x59</unique> <tid>7</tid> <threadname>msgr-worker-1</threadname> <kind>SyscallParam</kind> <what>Syscall param sendmsg(msg.msg_iov[6]) points to uninitialised byte(s)</what> <stack> <frame> <ip>0x53F69BD</ip> <obj>/lib/x86_64-linux-gnu/libpthread-2.19.so</obj> <dir>/build/eglibc-oGUzwX/eglibc-2.19/nptl/../sysdeps/unix</dir> <file>syscall-template.S</file> <line>81</line> </frame> <frame> <ip>0x5C2AFA5</ip> <obj>/usr/lib/ceph/libceph-common.so.0</obj> <fn>PosixConnectedSocketImpl::send(ceph::buffer::list&, bool)</fn> </frame> <frame> <ip>0x5BFC75E</ip> <obj>/usr/lib/ceph/libceph-common.so.0</obj> <fn>AsyncConnection::_try_send(bool)</fn> </frame> <frame> <ip>0x5BFEA67</ip> <obj>/usr/lib/ceph/libceph-common.so.0</obj> <fn>AsyncConnection::write_message(Message*, ceph::buffer::list&, bool)</fn> </frame> <frame> <ip>0x5C06070</ip> <obj>/usr/lib/ceph/libceph-common.so.0</obj> <fn>AsyncConnection::handle_write()</fn> </frame> <frame> <ip>0x5C23FCB</ip> <obj>/usr/lib/ceph/libceph-common.so.0</obj> <fn>EventCenter::process_events(int, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> >*)</fn> </frame> <frame> <ip>0x5C270AD</ip> <obj>/usr/lib/ceph/libceph-common.so.0</obj> </frame> <frame> <ip>0xF08AA5F</ip> <obj>/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19</obj> </frame> <frame> <ip>0x53EF183</ip> <obj>/lib/x86_64-linux-gnu/libpthread-2.19.so</obj> <fn>start_thread</fn> <dir>/build/eglibc-oGUzwX/eglibc-2.19/nptl</dir> <file>pthread_create.c</file> <line>312</line> </frame> <frame> <ip>0xF8F337C</ip> <obj>/lib/x86_64-linux-gnu/libc-2.19.so</obj> <fn>clone</fn> <dir>/build/eglibc-oGUzwX/eglibc-2.19/misc/../sysdeps/unix/sysv/linux/x86_64</dir> <file>clone.S</file> <line>111</line> </frame> </stack> <auxwhat>Address 0x6dce80ee is 430 bytes inside a block of size 4,096 alloc'd</auxwhat> <stack> <frame> <ip>0x4C2D110</ip> <obj>/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so</obj> <fn>memalign</fn> </frame> <frame> <ip>0x4C2D227</ip> <obj>/usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so</obj> <fn>posix_memalign</fn> </frame> <frame> <ip>0x4EE8C17</ip> <obj>/usr/lib/librados.so.2.0.0</obj> <fn>ceph::buffer::list::append(char const*, unsigned int)</fn> </frame> <frame> <ip>0x4DF853</ip> <obj>/usr/bin/radosgw</obj> <fn>rgw_put_system_obj(RGWRados*, rgw_pool const&, std::string const&, char const*, unsigned long, bool, RGWObjVersionTracker*, std::chrono::time_point<ceph::time_detail::real_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > >, std::map<std::string, ceph::buffer::list, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::list> > >*)</fn> </frame> <frame> <ip>0x372E01</ip> <obj>/usr/bin/radosgw</obj> <fn>RGWMetadataManager::put_entry(RGWMetadataHandler*, std::string const&, ceph::buffer::list&, bool, RGWObjVersionTracker*, std::chrono::time_point<ceph::time_detail::real_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > >, std::map<std::string, ceph::buffer::list, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::list> > >*)</fn> </frame> <frame> <ip>0x311A1E</ip> <obj>/usr/bin/radosgw</obj> <fn>rgw_bucket_instance_store_info(RGWRados*, std::string&, ceph::buffer::list&, bool, std::map<std::string, ceph::buffer::list, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::list> > >*, RGWObjVersionTracker*, std::chrono::time_point<ceph::time_detail::real_clock, std::chrono::duration<unsigned long, std::ratio<1l, 1000000000l> > >)</fn> </frame> <frame> <ip>0x313E4F</ip> <obj>/usr/bin/radosgw</obj> <fn>rgw_bucket_set_attrs(RGWRados*, RGWBucketInfo&, std::map<std::string, ceph::buffer::list, std::less<std::string>, std::allocator<std::pair<std::string const, ceph::buffer::list> > >&, RGWObjVersionTracker*)</fn> </frame> <frame> <ip>0x3B4763</ip> <obj>/usr/bin/radosgw</obj> <fn>RGWPutMetadataBucket::execute()</fn> </frame> <frame> <ip>0x3D8CFE</ip> <obj>/usr/bin/radosgw</obj> <fn>rgw_process_authenticated(RGWHandler_REST*, RGWOp*&, RGWRequest*, req_state*, bool)</fn> </frame> <frame> <ip>0x3D9A35</ip> <obj>/usr/bin/radosgw</obj> <fn>process_request(RGWRados*, RGWREST*, RGWRequest*, std::string const&, rgw::auth::StrategyRegistry const&, RGWRestfulIO*, OpsLogSocket*)</fn> </frame> <frame> <ip>0x2C3C76</ip> <obj>/usr/bin/radosgw</obj> <fn>RGWCivetWebFrontend::process(mg_connection*)</fn> </frame> <frame> <ip>0x2F826E</ip> <obj>/usr/bin/radosgw</obj> </frame> <frame> <ip>0x2F9C1A</ip> <obj>/usr/bin/radosgw</obj> </frame> <frame> <ip>0x53EF183</ip> <obj>/lib/x86_64-linux-gnu/libpthread-2.19.so</obj> <fn>start_thread</fn> <dir>/build/eglibc-oGUzwX/eglibc-2.19/nptl</dir> <file>pthread_create.c</file> <line>312</line> </frame> <frame> <ip>0xF8F337C</ip> <obj>/lib/x86_64-linux-gnu/libc-2.19.so</obj> <fn>clone</fn> <dir>/build/eglibc-oGUzwX/eglibc-2.19/misc/../sysdeps/unix/sysv/linux/x86_64</dir> <file>clone.S</file> <line>111</line> </frame> </stack> </error>
Actions