Bug 60513
| Summary: | Падение sigviewer (переполнение буфера при открытии файла с множеством стримов) | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Product: | Sisyphus | Reporter: | Блинов Денис Вячеславович <blinovdv> | ||||||
| Component: | sigviewer | Assignee: | Anton Farygin <rider> | ||||||
| Status: | RESOLVED FIXED | QA Contact: | qa-sisyphus | ||||||
| Severity: | normal | ||||||||
| Priority: | P5 | CC: | rider | ||||||
| Version: | unstable | ||||||||
| Hardware: | x86_64 | ||||||||
| OS: | Linux | ||||||||
| Attachments: |
|
||||||||
Принято в работу. Собрано тестовое задание 432964. Прошу проверить. Сизиф: sigviewer 0.7.2-alt1. Падение сохранилось, но уже не по причине libxdf, с новой версией libxdf другая причина. Перевешиваю баг. Так же в исправлении в апстриме упомянута более новая версия libbiosig, но причина так же не в этой библиотеке. libxdf 0.99.6 — файл падал ещё на этапе загрузки, в Xdf::syncTimeStamps() Ситуация сейчас: sigviewer 0.7.2 + libxdf 1.0.4 — краш «выныривает» дальше по цепочке: в bufferAllChannels() #0 std::vector<float>::size() stl_vector.h:990 #1 XDFReader::bufferAllChannels() xdf_reader.cpp:373 <-- краш #2 XDFReader::getSignalData() xdf_reader.cpp:94 #3 FileChannelManager::getData() file_channel_manager.cpp:85 #4 DownSamplingThread::minMaxDownsampling() downsampling_thread.cpp:96 #5 OpenFileGuiCommand::openFileImpl() open_file_gui_command.cpp:378 В файле xdf_reader.cpp: std::copy(row.begin(), row.end(), raw_data->begin() + startingPosition); // выход за буфер Пример файла для воспроизведения: $ wget https://raw.githubusercontent.com/xdf-modules/example-files/master/empty_streams.xdf Created attachment 22226 [details]
backtrace_new_libxdf.log
sigviewer-0.7.2-alt2 -> sisyphus: Thu Sep 17 2026 Anton Farygin <rider@altlinux> 0.7.2-alt2 - XDF: skip empty streams (closes: 60513). - Lower main window minimum size to 640x480 (closes: 60512). |

Description
Блинов Денис Вячеславович 2026-09-13 11:08:37 MSK