libblkid-tiny: use separated buffer for each block device read
authorRafał Miłecki <rafal@milecki.pl>
Sat, 14 Dec 2019 21:55:01 +0000 (22:55 +0100)
committerRafał Miłecki <rafal@milecki.pl>
Fri, 20 Dec 2019 06:43:15 +0000 (07:43 +0100)
commit0c5761f076e1db5f10d6207fe9b5ec381b1b8ff2
treea92645a48315a131ebea1a1c4a843d35bcb9f1f8
parentb82c5c109c8545da1c4fea46e102aef25896c0e4
libblkid-tiny: use separated buffer for each block device read

This allows reading multiple chunks of block device data and operating
on them simultaneously. Previous implementation was using a single
buffer (except for reading more data than allocated size) and subsequent
reads were corrupting memory of previously returned buffers.

This fixes e.g. problem with reading NTFS UUID and validating VFAT
signature.

Implementation is based on original libblkid code which handles it
similarly. Buffers are put on probe internal list and freed when
releasing a probe struct.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
libblkid-tiny/libblkid-tiny.c
libblkid-tiny/libblkid-tiny.h
libblkid-tiny/probe.c