coreboot-kgpe-d16/util
Sol Boucher 64c6cd73f3 cbfstool: Add offset field to cbfstool directory's struct buffer
This allows calls to buffer_delete() to work on a buffer that has been
buffer_seek()ed or the buffer created by a buffer_splice(). The same
information could also be useful for other purposes, such as writing
slices back to a file at the offset they originally occupied.

BUG=chromium:470407
TEST=Attempt to perform the following sequence of buffer actions, then run it
through valgrind to check for memory errors:
for (int pos = 0; pos <= 3; ++pos) {
	struct buffer seek_test;
	buffer_create(&seek_test, 3, "seek_test");
	if (pos == 0) {
		buffer_delete(&seek_test);
		continue;
	}
	buffer_seek(&seek_test, 1);
	if (pos == 1) {
		buffer_delete(&seek_test);
		continue;
	}
	buffer_seek(&seek_test, 1);
	if (pos == 2) {
		buffer_delete(&seek_test);
		continue;
	}
	buffer_seek(&seek_test, 1);
	if (pos == 3) {
		buffer_delete(&seek_test);
		continue;
	}
}
for (int pos = 0; pos <= 14; ++pos) {
	struct buffer slice_test;
	buffer_create(&slice_test, 3, "slice_test");
	if (pos == 0) {
		buffer_delete(&slice_test);
		continue;
	}
	struct buffer sliced_once;
	buffer_splice(&sliced_once, &slice_test, 1, 2);
	if (pos == 1) {
		buffer_delete(&slice_test);
		continue;
	}
	if (pos == 2) {
		buffer_delete(&sliced_once);
		continue;
	}
	struct buffer sliced_twice;
	buffer_splice(&sliced_twice, &sliced_once, 2, 1);
	if (pos == 3) {
		buffer_delete(&slice_test);
		continue;
	}
	if (pos == 4) {
		buffer_delete(&sliced_once);
		continue;
	}
	if (pos == 5) {
		buffer_delete(&sliced_twice);
		continue;
	}
	struct buffer sliced_same;
	buffer_splice(&sliced_same, &slice_test, 1, 1);
	if (pos == 6) {
		buffer_delete(&slice_test);
		continue;
	}
	if (pos == 7) {
		buffer_delete(&sliced_once);
		continue;
	}
	if (pos == 8) {
		buffer_delete(&sliced_twice);
		continue;
	}
	if (pos == 9) {
		buffer_delete(&sliced_same);
		continue;
	}
	struct buffer sliced_thrice;
	buffer_splice(&sliced_thrice, &sliced_twice, 1, 0);
	if (pos == 10) {
		buffer_delete(&slice_test);
		continue;
	}
	if (pos == 11) {
		buffer_delete(&sliced_once);
		continue;
	}
	if (pos == 12) {
		buffer_delete(&sliced_twice);
		continue;
	}
	if (pos == 13) {
		buffer_delete(&sliced_same);
		continue;
	}
	if (pos == 14) {
		buffer_delete(&sliced_thrice);
		continue;
	}
}
BRANCH=None

Change-Id: Id67734654a62302c0de37746d8a978d49b240505
Signed-off-by: Sol Boucher <solb@chromium.org>
Original-Commit-Id: 00c40982a21a91a488587dd3cead7109f3a30d98
Original-Change-Id: Ie99839d36500d3270e4924a3477e076a6d27ffc8
Original-Signed-off-by: Sol Boucher <solb@chromium.org>
Original-Reviewed-on: https://chromium-review.googlesource.com/267467
Original-Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-on: http://review.coreboot.org/10133
Tested-by: build bot (Jenkins)
Reviewed-by: Patrick Georgi <pgeorgi@google.com>
2015-05-08 20:25:11 +02:00
..
abuild abuild: add option to build with CHROMEOS enabled 2015-04-22 19:37:01 +02:00
acpi GPLv2 notice: Unify all files to just use one space in »MA 02110-1301« 2013-03-01 10:16:08 +01:00
amdtools Since some people disapprove of white space cleanups mixed in regular commits 2010-04-27 06:56:47 +00:00
arm_boot_tools/mksunxiboot arm_boot_tools: Add 'b' to fopen flags for Windows compatibility 2014-12-19 18:55:34 +01:00
bimgtool util/bimgtool: Add verification mode 2015-04-10 12:03:35 +02:00
board_status Mediawiki editing warning 2015-05-04 15:16:59 +02:00
broadcom util/broadcom: specify libraries after object files 2015-04-22 19:36:29 +02:00
cbfstool cbfstool: Add offset field to cbfstool directory's struct buffer 2015-05-08 20:25:11 +02:00
cbmem cbmem: Add FSP timestamps 2015-04-30 01:33:10 +02:00
crossgcc crossgcc: Re-download the archive if it is incomplete 2015-05-04 14:56:21 +02:00
dtd_parser GPLv2 notice: Unify all files to just use one space in »MA 02110-1301« 2013-03-01 10:16:08 +01:00
ectool ectool: add query function to ectool 2015-04-08 08:41:59 +02:00
exynos exynos: Install the BL1 and set the checksum in the Makefile. 2014-09-09 20:01:18 +02:00
fletcher util/fletcher: fix debug option parsing 2014-10-18 14:45:42 +02:00
genbuild_h util/genbuild_h: work around GNU date 2015-03-29 22:45:08 +02:00
genprof util/genprof: improve handling of command line arguments 2014-08-12 09:02:44 +02:00
gitconfig gitconfig: Use the right make executable in git hooks 2015-04-28 22:49:16 +02:00
ifdfake ifdfake - Create an IFD with just a section layout 2013-06-24 17:56:42 +02:00
ifdtool ifdtool: Add O_BINARY to open flags for Windows compatibility 2014-12-19 18:55:48 +01:00
inteltool inteltool: add ICH8M-E support 2015-03-26 03:33:46 +01:00
ipqheader util/ipqheader: Add utility to create uber-SBL for IPQ8064 2015-04-13 17:36:27 +02:00
k8resdump GPLv2 notice: Unify all files to just use one space in »MA 02110-1301« 2013-03-01 10:16:08 +01:00
kconfig kconfig: avoid using wordexp 2015-05-04 22:26:09 +02:00
lint checkpatch: fix tree recognition 2015-05-08 20:05:02 +02:00
msrtool utils/msrtool: add westmere cpuids to nehalem 2015-02-11 02:51:16 +01:00
nvidia nvidia/cbootimage: update to 1.5 2015-04-25 12:16:58 +02:00
nvramtool nvramtool: fix getopt handling with unsigned char 2015-04-06 23:29:06 +02:00
optionlist Fix Kconfig option list generator 2015-05-06 19:11:04 +02:00
rockchip add make_idb.py & update bootblock 2015-03-24 15:24:52 +01:00
romcc romcc: avoid use-after-free 2014-09-06 09:21:07 +02:00
sconfig sconfig: add cpu device type 2014-10-07 21:03:25 +02:00
scripts Add MAINTAINERS file 2015-05-06 19:38:18 +02:00
showdevicetree ARM: Generalize armv7 as arm. 2014-09-08 18:59:23 +02:00
spkmodem_recv Add spkmodem receiver 2013-06-12 05:18:24 +02:00
superiotool util/superiotool: change displayed name of chip id 0xc333 (nct6776) 2014-12-19 19:01:47 +01:00
uio_usbdebug uio_usbdebug: User-space-i/o framework for usbdebug 2015-03-19 19:19:42 +01:00
vgabios vgabios: fix compilation 2015-05-06 19:10:32 +02:00
viatool viatool: Add utility to read various configuration bits on VIA systems 2013-06-04 22:36:26 +02:00
xcompile util/xcompile/xcompile: Allow to override `HOSTCC` variable 2015-05-04 15:03:10 +02:00