[ovs-dev] [PATCH] ovsdb-server: Fix schema leak while reading db.

Ilya Maximets i.maximets at ovn.org
Thu May 28 17:04:49 UTC 2020


On 5/27/20 1:52 AM, Han Zhou wrote:
> 
> 
> On Fri, May 15, 2020 at 9:25 AM Ilya Maximets <i.maximets at ovn.org <mailto:i.maximets at ovn.org>> wrote:
>>
>> parse_txn() function doesn't always take ownership of the 'schema'
>> passed.  So, if the schema of the clustered db has same version as the
>> one that already in use, parse_txn() will not use it, resulting with a
>> memory leak:
>>
>>  7,827 (56 direct, 7,771 indirect) bytes in 1 blocks are definitely lost
>>     at 0x483BB1A: calloc (vg_replace_malloc.c:762)
>>     by 0x44AD02: xcalloc (util.c:121)
>>     by 0x40E70E: ovsdb_schema_create (ovsdb.c:41)
>>     by 0x40EA6D: ovsdb_schema_from_json (ovsdb.c:217)
>>     by 0x415EDD: ovsdb_storage_read (storage.c:280)
>>     by 0x408968: read_db (ovsdb-server.c:607)
>>     by 0x40733D: main_loop (ovsdb-server.c:227)
>>     by 0x40733D: main (ovsdb-server.c:469)
>>
>> While we could put ovsdb_schema_destroy() in a few places inside
>> 'parse_txn()', from the users' point of view it seems better to have a
>> constant argument and just clone the 'schema' if needed.  The caller
>> will be responsible for destroying the 'schema' it owns.
>>
>> CC: Ben Pfaff <blp at ovn.org <mailto:blp at ovn.org>>
>> Fixes: 1b1d2e6daa56 ("ovsdb: Introduce experimental support for clustered databases.")
>> Signed-off-by: Ilya Maximets <i.maximets at ovn.org <mailto:i.maximets at ovn.org>>
>> ---
> 
> Acked-by: Han Zhou <hzhou at ovn.org <mailto:hzhou at ovn.org>>

Thanks!  Applied to master and backported down to 2.9.

Best regards, Ilya Maximets.


More information about the dev mailing list