-
Couldn't load subscription status.
- Fork 23
Open
Description
This is really strange
Reproduction
use bson::doc;
use mongo_driver::client::{ClientPool, Uri};
fn main() {
let mongo_uri = Uri::new("mongodb://127.0.0.1:27017").unwrap();
let pool = ClientPool::new(mongo_uri, None);
let ping = doc! {"ping": 1};
pool.pop()
.get_database("admin")
.command_simple(ping, None)
.unwrap();
}Run it with:
RUSTFLAGS="$RUSTFLAGS -Zsanitizer=address" cargo +nightly run --target=x86_64-unknown-linux-gnu
Possible reason
In database::command_simple(), when the bson_t is created the flags are set to 1, but after the bindings::mongoc_database_command_simple() the flags are set to 2. This means BSON_FLAG_STATIC which leads to skipping the free() in bson_destroy().
Not sure how this works internally, but this is my best guess...
Metadata
Metadata
Assignees
Labels
No labels