Looks good to me, thanks. Reviewed-by: Yifeng Sun <[email protected]>
On Sat, May 2, 2020 at 10:29 AM William Tu <[email protected]> wrote: > An exmplae pattern shown below: > void > ovsrec_ct_zone_index_set_external_ids(const struct ovsrec_ct_zone... > { > // 1. alloc_fn: Storage is returned from allocation function xmalloc. > // 2. var_assign: Assigning: datum = storage returned from xmalloc(24UL). > struct ovsdb_datum *datum = xmalloc(sizeof(struct ovsdb_datum)); > > // 3. Condition external_ids, taking false branch. > if (external_ids) { > ... > } else { > // 4. noescape: Resource datum is not freed or pointed-to in > ovsdb_datum_init_empty. > ovsdb_datum_init_empty(datum); > } > // 5. noescape: Resource datum is not freed or pointed-to in > ovsdb_idl_index_write. > ovsdb_idl_index_write(CONST_CAST(struct ovsdb_idl_row *, > &row->header_), > > &ovsrec_ct_zone_columns[OVSREC_CT_ZONE_COL_EXTERNAL_IDS], > datum, > &ovsrec_table_classes[OVSREC_TABLE_CT_ZONE]); > > // CID 1420856 (#1 of 1): Resource leak (RESOURCE_LEAK) > // 6. leaked_storage: Variable datum going out of scope leaks the storage > it > points to. > Fix it by freeing the datum. > > Signed-off-by: William Tu <[email protected]> > --- > ovsdb/ovsdb-idlc.in | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/ovsdb/ovsdb-idlc.in b/ovsdb/ovsdb-idlc.in > index 1d385e15c1e5..698fe25f3095 100755 > --- a/ovsdb/ovsdb-idlc.in > +++ b/ovsdb/ovsdb-idlc.in > @@ -1306,6 +1306,7 @@ struct %(s)s * > &%(s)s_columns[%(S)s_COL_%(C)s], > datum, > &%(p)stable_classes[%(P)sTABLE_%(T)s]); > + free(datum); > } > """ % {'t': tableName, > 'p': prefix, > -- > 2.7.4 > > _______________________________________________ > dev mailing list > [email protected] > https://mail.openvswitch.org/mailman/listinfo/ovs-dev > _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
