Skip to content

Commit ef33646

Browse files
author
Dane Springmeyer
committed
avoid potential access of uninitialized text_placements_ptr - closes #2766
1 parent eb3fe1f commit ef33646

File tree

1 file changed

+12
-9
lines changed

1 file changed

+12
-9
lines changed

src/load_map.cpp

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1101,17 +1101,20 @@ void map_parser::parse_text_symbolizer(rule & rule, xml_node const& node)
11011101
placements = std::make_shared<text_placements_dummy>();
11021102
placements->defaults.from_xml(node, fontsets_, false);
11031103
}
1104-
if (strict_ && !placements->defaults.format_defaults.fontset)
1104+
if (placements)
11051105
{
1106-
ensure_font_face(placements->defaults.format_defaults.face_name);
1106+
if (strict_ && !placements->defaults.format_defaults.fontset)
1107+
{
1108+
ensure_font_face(placements->defaults.format_defaults.face_name);
1109+
}
1110+
text_symbolizer sym;
1111+
parse_symbolizer_base(sym, node);
1112+
put<text_placements_ptr>(sym, keys::text_placements_, placements);
1113+
set_symbolizer_property<symbolizer_base,composite_mode_e>(sym, keys::halo_comp_op, node);
1114+
set_symbolizer_property<symbolizer_base,halo_rasterizer_enum>(sym, keys::halo_rasterizer, node);
1115+
set_symbolizer_property<symbolizer_base,transform_type>(sym, keys::halo_transform, node);
1116+
rule.append(std::move(sym));
11071117
}
1108-
text_symbolizer sym;
1109-
parse_symbolizer_base(sym, node);
1110-
put<text_placements_ptr>(sym, keys::text_placements_, placements);
1111-
set_symbolizer_property<symbolizer_base,composite_mode_e>(sym, keys::halo_comp_op, node);
1112-
set_symbolizer_property<symbolizer_base,halo_rasterizer_enum>(sym, keys::halo_rasterizer, node);
1113-
set_symbolizer_property<symbolizer_base,transform_type>(sym, keys::halo_transform, node);
1114-
rule.append(std::move(sym));
11151118
}
11161119
catch (config_error const& ex)
11171120
{

0 commit comments

Comments
 (0)