Details
-
Bug
-
Resolution: Cannot Reproduce
-
Major - P3
-
None
-
3.4.0
-
None
-
None
-
x86_64
ubuntu 16.04
4.15.0-58-generic
Description
test.cpp code:
#include <bsoncxx/json.hpp>
|
#include <bsoncxx/v_noabi/bsoncxx/builder/stream/document.hpp>
|
#include <bsoncxx/types.hpp>
|
#include <mongocxx/client.hpp>
|
#include <mongocxx/stdx.hpp>
|
#include <mongocxx/uri.hpp>
|
#include <mongocxx/instance.hpp>
|
#include <vector>
|
#include <string>
|
#include <iostream>
|
#include <openssl/md5.h>
|
|
|
std::string To_Hex_String(unsigned char* input, const int datasize) {
|
std::string output;
|
char ch[3];
|
|
|
for (int i = 0; i < datasize; i++) {
|
snprintf(ch, 3, "%02x", input[i]);
|
output += ch;
|
}
|
return output;
|
}
|
|
|
int main(){
|
unsigned char md5v[MD5_DIGEST_LENGTH];
|
std::vector<unsigned char> data = {'a','b','c'};
|
std::cout << To_Hex_String(MD5((unsigned char *) &data.front(), data.size(), md5v), MD5_DIGEST_LENGTH);
|
mongocxx::instance instance{};
|
mongocxx::uri uri("mongodb://10.210.196.55:27017");
|
mongocxx::client client(uri);
|
mongocxx::database db = client["Disassembly_process"]
|
}
|
Compile command:
g++ -g --std=c++11 -o test.out test.cpp -I/usr/local/include/mongocxx/v_noabi -I/usr/local/include/libmongoc-1.0 -I/usr/local/include/bsoncxx/v_noabi -I/usr/local/include/libbson-1.0 -L/usr/local/lib -lmongocxx -lbsoncxx -lopenssl
|
Debug information:
Error in `/home/save/SAVE/tmp/test.out': free(): invalid pointer: 0x00007ffff607f860
|
......
|
Program received signal SIGABRT, Aborted.
|
0x00007ffff7006428 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:54
|
54 ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
|
|
|
#0 0x00007ffff7006428 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:54
|
#1 0x00007ffff700802a in __GI_abort () at abort.c:89
|
#2 0x00007ffff70487ea in __libc_message (do_abort=do_abort@entry=2,
|
fmt=fmt@entry=0x7ffff7161ed8 "*** Error in `%s': %s: 0x%s ***\n")
|
at ../sysdeps/posix/libc_fatal.c:175
|
#3 0x00007ffff705137a in malloc_printerr (ar_ptr=<optimized out>, ptr=<optimized out>,
|
str=0x7ffff715ecaf "free(): invalid pointer", action=3) at malloc.c:5006
|
#4 _int_free (av=<optimized out>, p=<optimized out>, have_lock=0) at malloc.c:3867
|
#5 0x00007ffff705553c in __GI___libc_free (mem=<optimized out>) at malloc.c:2968
|
#6 0x00007ffff793608c in SSL_CTX_free () from /usr/lib/x86_64-linux-gnu/libgnutls-openssl.so.27
|
#7 0x00007ffff6b586f9 in _mongoc_do_init () from /usr/local/lib/libmongoc-1.0.so.0
|
#8 0x00007ffff518ea99 in __pthread_once_slow (once_control=0x7ffff6db22b4 <once>,
|
init_routine=0x7ffff6b586f0 <_mongoc_do_init>) at pthread_once.c:116
|
#9 0x00007ffff7b97566 in std::unique_ptr<mongocxx::v_noabi::instance::impl, std::default_delete<mongocxx::v_noabi::instance::impl> > core::v1::make_unique<mongocxx::v_noabi::instance::impl, void, std::unique_ptr<mongocxx::v_noabi::logger, std::default_delete<mongocxx::v_noabi::logger> > >(std::unique_ptr<mongocxx::v_noabi::logger, std::default_delete<mongocxx::v_noabi::logger> >&&) ()
|
from /usr/local/lib/libmongocxx.so._noabi
|
#10 0x00007ffff7b970e7 in mongocxx::v_noabi::instance::instance(std::unique_ptr<mongocxx::v_noabi::logger, std::default_delete<mongocxx::v_noabi::logger> >) () from /usr/local/lib/libmongocxx.so._noabi
|
#11 0x00007ffff7b97245 in mongocxx::v_noabi::instance::instance() ()
|
from /usr/local/lib/libmongocxx.so._noabi
|
#12 0x0000000000400f54 in main () at test.cpp:34
|
Even if MD5() is included in the code and not called in main(), the program still reports error in mongocxx::instance instance{}