Hi Martin I'm sorry for send "[PATCH V3] libmultipath: fix a memory leak in set_ble_device" to you before finishing compile. Here is some question in ble->vendor_reg = NULL. The type of ble->vendor_reg is regex_t but not void *, so it can not be set to NULL. Do you have any good idea about how to set ble->vendor_reg. You can ignore the email [PATCH V3] libmultipath: fix a memory leak in set_ble_device. Lixiaokeng > Thinking about it again, I believe the error handling code should look > like this: > > out1: > if (vendor) { > regfree(&ble->vendor_reg); > ble->vendor_reg = NULL; > ble->vendor = NULL; > } > out: > free(vendor_str); > free(product_str); > return 1; > > Rationale: vendor_str and product_str are local variables, there's no > point in setting them to NULL. But the ble fields need careful > treatment, as vendor and product can either be set in a single call of > this function, or in two separate calls. You should test "vendor" > rather than "vendor_str" in the "out1" clause to make this logic > obvious, even though you never pass "out1" if allocating vendor_str > failed. > > Note the regfree() I added. It's missing in the current code as well. > > Regards, > Martin > > > -- > dm-devel mailing list > dm-devel@xxxxxxxxxx > https://www.redhat.com/mailman/listinfo/dm-devel > > > . > -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel