Project

General

Profile

Actions

Bug #63310

closed

use-after-move in OSDService::build_incremental_map_msg()

Added by Ronen Friedman 7 months ago. Updated 13 days ago.

Status:
Resolved
Priority:
Normal
Category:
-
Target version:
-
% Done:

0%

Source:
Tags:
backport_processed
Backport:
pacific quincy reef
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Component(RADOS):
OSD
Pull request ID:
Crash signature (v1):
Crash signature (v2):

Description

The 'bl' variable is moved from, then accessed:

for (epoch_t e = since + 1; e <= to; ++e) {
bufferlist bl;
if (get_inc_map_bl(e, bl)) {
m->incremental_maps[e] = std::move(bl);
} else {
dout(10) << __func__ << " missing incremental map " << e << dendl;
if (!get_map_bl(e, bl)) {
derr << __func__ << " also missing full map " << e << dendl;
goto panic;
}
m->maps[e] = std::move(bl); // <<<--------------
}
max--;
max_bytes -= bl.length(); // <<<-------------
if (max <= 0 || max_bytes <= 0) {
break;
}
}


Related issues 3 (0 open3 closed)

Copied to RADOS - Backport #63370: quincy: use-after-move in OSDService::build_incremental_map_msg()ResolvedRonen FriedmanActions
Copied to RADOS - Backport #63371: reef: use-after-move in OSDService::build_incremental_map_msg()ResolvedRonen FriedmanActions
Copied to RADOS - Backport #63372: pacific: use-after-move in OSDService::build_incremental_map_msg()ResolvedRonen FriedmanActions
Actions

Also available in: Atom PDF