Skip to content

ODB: segfault on invalid path in read_3dbx #10082

@gadfort

Description

@gadfort

Describe the bug

Segfault when read_3dbx encounters an invalid path

Expected Behavior

No segfault, error message about file not found

Environment

Head of master

To Reproduce

https://github.com/gadfort/OpenROAD/tree/segfault-3dbx

Run this test: src/odb/test/read_3dbx-fail.tcl

Relevant log output

0# 0x000056F0E2C52713 in openroad
 1# 0x00007F169EE45330 in /lib/x86_64-linux-gnu/libc.so.6
 2# odb::_dbDatabase::getLogger() const in openroad
 3# odb::dbModule::create(odb::dbBlock*, char const*) in openroad
 4# odb::_dbBlock::initialize(odb::_dbChip*, odb::_dbBlock*, char const*, char) in openroad
 5# odb::dbBlock::create(odb::dbChip*, char const*, char) in openroad
 6# odb::ThreeDBlox::createChiplet(odb::ChipletDef const&) in openroad
 7# odb::ThreeDBlox::readDbv(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) in openroad
 8# odb::ThreeDBlox::readHeaderIncludes(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&) in openroad
 9# odb::ThreeDBlox::readDbx(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) in openroad
10# ord::OpenRoad::read3Dbx(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) in openroad
11# 0x000056F0E2D2DF02 in openroad
12# TclNRRunCallbacks in /lib/x86_64-linux-gnu/libtcl8.6.so
13# 0x00007F16A30DC6BC in /lib/x86_64-linux-gnu/libtcl8.6.so
14# Tcl_EvalEx in /lib/x86_64-linux-gnu/libtcl8.6.so
15# Tcl_Eval in /lib/x86_64-linux-gnu/libtcl8.6.so
16# sta::sourceTclFile(char const*, bool, bool, Tcl_Interp*) in openroad
17# 0x000056F0E2C53A81 in openroad
18# Tcl_MainEx in /lib/x86_64-linux-gnu/libtcl8.6.so
19# main in openroad
20# 0x00007F169EE2A1CA in /lib/x86_64-linux-gnu/libc.so.6
21# __libc_start_main in /lib/x86_64-linux-gnu/libc.so.6
22# _start in openroad

Screenshots

No response

Additional Context

No response

Metadata

Metadata

Labels

odbOpenDB

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions