slazav / mapsoft2

Rewriting mapsoft project
GNU General Public License v3.0
6 stars 1 forks source link

Ошибка сборки, TIFFFetchDirectory #67

Closed ioctl-user closed 1 week ago

ioctl-user commented 2 weeks ago

Собираю новейший коммит 36eae0bd0d68ffe860e740e979953fb96106fd7c от 17 июня, модули f8968f3363ac97e2b1692e0e41b0029fbd1a6608 от 1 июня и/или d711dac5885e9e8efcfdde4e6991f1ea295a43d8 от 6 июня.

...
## Running test: image_t.test
g++ -std=gnu++11 -I/usr/include/libpng16 -Werror=return-type -O2 -fPIC -g -I..    -c -o image_colors.test.o image_colors.test.cpp
g++   image_colors.test.o colors.o image.o image_t.o image_colors.o image_test.o io.o io_gif.o io_jpeg.o io_png.o io_tiff.o io_pnm.o ../filename/filename.a ../geo_tiles/geo_tiles.a ../geom/geom.a ../downloader/downloader.a ../getopt/getopt.a ../opt/opt.a ../cache/cache.a ../err/err.a  -ltiff -lcurl -lpng16 -ljansson -ljpeg -lgif -lpthread -o image_colors.test
## Running test: image_colors.test
g++ -std=gnu++11 -I/usr/include/libpng16 -Werror=return-type -O2 -fPIC -g -I..    -c -o io.test.o io.test.cpp
g++   io.test.o colors.o image.o image_t.o image_colors.o image_test.o io.o io_gif.o io_jpeg.o io_png.o io_tiff.o io_pnm.o ../filename/filename.a ../geo_tiles/geo_tiles.a ../geom/geom.a ../downloader/downloader.a ../getopt/getopt.a ../opt/opt.a ../cache/cache.a ../err/err.a  -ltiff -lcurl -lpng16 -ljansson -ljpeg -lgif -lpthread -o io.test
## Running test: io.test
TIFFFetchDirectory: Warning, Requested memory size for TIFF directory of 132 is greather than filesize 2. Memory not allocated, TIFF directory not read.
Error: TIFFReadDirectory error: Failed to read directory at offset 81696: test_data/img.tmp.tiff
make[2]: *** [../Makefile.inc:114: io.test.passed] Ошибка 1
make[2]: выход из каталога «/home/build/mapsoft2/modules/image»
make[1]: *** [../../modules/Makefile.inc:90: make_deps] Ошибка 2
make[1]: выход из каталога «/home/build/mapsoft2/programs/ms2conv»
make: *** [Makefile:33: ms2conv] Ошибка 2

Установлена libtiff 4.6.0 .

slazav commented 2 weeks ago

У меня с libtiff-4.4.0 все работает. Постараюсь разобраться

slazav commented 1 week ago

https://gitlab.com/libtiff/libtiff/-/commit/5320c9d89c054fa805d037d84c57da874470b01a https://gitlab.com/libtiff/libtiff/-/issues/614

Как я понял, в libtiff была исправлена проблема, что небольшой файл мог вызвать аллокацию произвольно большого объема памяти. Вставлена проверка, что этот объем не может быть больше, чем размер файла.

В моем случае tiff-файл читается из потока и, вероятно размер файла в этом случае вычисляется неправильно. Это может быть проблемой libtiff, попробую еще покопаться и написать им. Ну и подумаю, можно ли ее обойти в mapsoft

slazav commented 1 week ago

А, нет, проблема у меня в mapsoft. Сейчас попробую исправить (но новый libtiff я пока себе не собрал, так что будет хорошо, если ты проверишь).

ioctl-user commented 18 hours ago

Теперь собирается.