Skip to content

Commit 1528aee

Browse files
authored
Merge pull request ceph#57353 from Svelar/asan_shec
crush/builder: free 'crush_rule' before return Reviewed-by: Pere Diaz Bou <[email protected]> Reviewed-by: Kefu Chai <[email protected]>
2 parents 85d4bc8 + 7bae439 commit 1528aee

File tree

2 files changed

+5
-0
lines changed

2 files changed

+5
-0
lines changed

src/crush/CrushWrapper.cc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2351,6 +2351,7 @@ int CrushWrapper::add_simple_rule_at(
23512351
int ret = crush_add_rule(crush, rule, rno);
23522352
if(ret < 0) {
23532353
*err << "failed to add rule " << rno << " because " << cpp_strerror(ret);
2354+
free(rule);
23542355
return ret;
23552356
}
23562357
set_rule_name(rno, name);
@@ -2455,6 +2456,7 @@ int CrushWrapper::add_multi_osd_per_failure_domain_rule_at(
24552456
int ret = crush_add_rule(crush, rule, rno);
24562457
if(ret < 0) {
24572458
*err << "failed to add rule " << rno << " because " << cpp_strerror(ret);
2459+
free(rule);
24582460
return ret;
24592461
}
24602462
set_rule_name(rno, name);

src/crush/CrushWrapper.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1172,6 +1172,9 @@ class CrushWrapper {
11721172
crush_rule *n = crush_make_rule(len, type);
11731173
ceph_assert(n);
11741174
ruleno = crush_add_rule(crush, n, ruleno);
1175+
if (ruleno < 0) {
1176+
free(n);
1177+
}
11751178
return ruleno;
11761179
}
11771180
int set_rule_step(unsigned ruleno, unsigned step, int op, int arg1, int arg2) {

0 commit comments

Comments
 (0)