Message ID | 20200729083754.1044630-1-rory.sexton@intel.com (mailing list archive) |
---|---|
State | Accepted, archived |
Delegated to: | David Marchand |
Headers | show |
Series | [1/1] examples/vm_power_manager: fix resource leak | expand |
Context | Check | Description |
---|---|---|
ci/iol-mellanox-Performance | success | Performance Testing PASS |
ci/iol-testing | success | Testing PASS |
ci/iol-intel-Performance | success | Performance Testing PASS |
ci/travis-robot | success | Travis build: passed |
ci/Intel-compilation | success | Compilation OK |
ci/checkpatch | success | coding style OK |
Hi Rory, On 29/7/2020 9:37 AM, Rory Sexton wrote: > Fix memory leak where variable oob_enable can go out of scope leaking > the storage it points to. > > Coverity issue: 337674 > Fixes: 95f648ff9ee ("examples/vm_power: make branch ratio threshold per core") > > Signed-off-by: Rory Sexton <rory.sexton@intel.com> > --- > examples/vm_power_manager/main.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/examples/vm_power_manager/main.c b/examples/vm_power_manager/main.c > index 77797b1e1..0242cca1a 100644 > --- a/examples/vm_power_manager/main.c > +++ b/examples/vm_power_manager/main.c > @@ -209,6 +209,7 @@ parse_args(int argc, char **argv) > } > if (branch_ratio <= 0.0 || branch_ratio > 100.0) { > printf("invalid branch ratio specified\n"); > + free(oob_enable); > return -1; > } > for (i = 0; i < ci->core_count; i++) { Acked-by: David Hunt <david.hunt@intel.com>
On Wed, Jul 29, 2020 at 10:38 AM Rory Sexton <rory.sexton@intel.com> wrote: > > Fix memory leak where variable oob_enable can go out of scope leaking > the storage it points to. > > Coverity issue: 337674 > Fixes: 95f648ff9ee ("examples/vm_power: make branch ratio threshold per core") > > Signed-off-by: Rory Sexton <rory.sexton@intel.com> Acked-by: David Hunt <david.hunt@intel.com> Applied, thanks Rory. There is another issue in this code. Previous branches part of the 'b' option handling will break from the parsing loop and have the parse_args() function return the option index where it stopped. This should instead report a parsing error and have the app fail to initialise. Something like: diff --git a/examples/vm_power_manager/main.c b/examples/vm_power_manager/main.c index 75d5b5364f..2c394b60fc 100644 --- a/examples/vm_power_manager/main.c +++ b/examples/vm_power_manager/main.c @@ -194,7 +194,7 @@ parse_args(int argc, char **argv) "core-branch-ratio matrix - [%s]\n", optarg); free(oob_enable); - break; + return -1; } cnt = parse_branch_ratio(optarg, &branch_ratio); if (cnt < 0) { @@ -202,7 +202,7 @@ parse_args(int argc, char **argv) "core-branch-ratio matrix - [%s]\n", optarg); free(oob_enable); - break; + return -1; } if (branch_ratio <= 0.0 || branch_ratio > 100.0) { printf("invalid branch ratio specified\n"); Could you test this and send a followup patch? Thanks.
diff --git a/examples/vm_power_manager/main.c b/examples/vm_power_manager/main.c index 77797b1e1..0242cca1a 100644 --- a/examples/vm_power_manager/main.c +++ b/examples/vm_power_manager/main.c @@ -209,6 +209,7 @@ parse_args(int argc, char **argv) } if (branch_ratio <= 0.0 || branch_ratio > 100.0) { printf("invalid branch ratio specified\n"); + free(oob_enable); return -1; } for (i = 0; i < ci->core_count; i++) {
Fix memory leak where variable oob_enable can go out of scope leaking the storage it points to. Coverity issue: 337674 Fixes: 95f648ff9ee ("examples/vm_power: make branch ratio threshold per core") Signed-off-by: Rory Sexton <rory.sexton@intel.com> --- examples/vm_power_manager/main.c | 1 + 1 file changed, 1 insertion(+)