u-boot/tools
Andre Przywara 40e7b3ce74 tools: mkenvimage: Fix reading from slow pipe
It is perfectly fine for the read(2) syscall to return with less than
the requested number of bytes read (short read, see the "RETURN VALUE"
section of the man page). This typically happens with slow input
(keyboard, network) or with complex pipes.

So far mkenvimage expects the exact number of requested bytes to be
read, assuming an end-of-file condition otherwise. This wrong behaviour
can be easily shown with:
$ (echo "foo=bar"; sleep 1; echo "bar=baz") | mkenvimage -s 256 -o out -
The second line will be missing from the output.

Correct this by checking for any positive, non-zero return value.

This fixes a problem with a complex pipe in one of my scripts, where
the environment consist of two parts.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Acked-by: Alexander Dahl <ada@thorsis.com>
2019-07-18 11:31:26 -04:00
..
binman binman: Update the README.entries file 2019-07-10 16:52:58 -06:00
buildman buildman: Deal more nicely with invalid build-status file 2019-05-21 17:33:23 -06:00
concurrencytest binman: Run tests concurrently 2018-10-08 07:34:34 -06:00
dtoc dtoc: Update dtb_platdata to support Python 3 2019-07-10 16:52:58 -06:00
easylogo SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
env fw_env: Add missing write failure check 2019-06-20 10:57:08 -04:00
gdb SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
kermit SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
libfdt scripts/dtc: Update to upstream version v1.4.6-9-gaadd0b65c987 2018-05-31 08:53:11 -04:00
logos logos: provide U-Boot logo 2018-05-31 08:53:11 -04:00
omap SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
patman patman: Update cover-coverage tests for Python 3 2019-07-10 16:52:58 -06:00
scripts tools: fix define2mk.sed to not add quotes around negative integers 2016-06-13 07:46:29 +09:00
.gitignore tools: add tools/spl_size_limit to ignore list 2019-06-14 16:10:48 -04:00
aisimage.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
aisimage.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
atmel_pmecc_params.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
atmelimage.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
bmp_logo.c tools: bmp_logo: correctly interpret BMP files with larger headers 2017-10-16 09:42:51 -04:00
default_image.c mkimage: Refactor imagetool_get_source_date to take command name 2018-07-10 16:56:00 -04:00
dumpimage.c tools: dumpimage: Clarify help 2019-02-01 14:13:46 -05:00
dumpimage.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
envcrc.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
fdt_host.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
fdtgrep.c fdtgrep: Separate out checking of two allocations 2018-06-19 07:31:44 -04:00
file2include.c tools/file2include: don't use malloc.h for malloc 2018-11-26 22:52:12 -05:00
fit_check_sign.c tools: use read-only mmap in fit_check_sign 2019-05-18 12:32:02 -04:00
fit_common.c tools: use read-only mmap in fit_check_sign 2019-05-18 12:32:02 -04:00
fit_common.h tools: use read-only mmap in fit_check_sign 2019-05-18 12:32:02 -04:00
fit_image.c tools: use read-only mmap in fit_check_sign 2019-05-18 12:32:02 -04:00
fit_info.c tools: use read-only mmap in fit_check_sign 2019-05-18 12:32:02 -04:00
gen_eth_addr.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
gen_ethaddr_crc.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
genboardscfg.py tools: genboardscfg: move buildman path to first 2018-07-30 07:18:49 -04:00
getline.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
getline.h getline: split out for darwin systems 2010-01-26 00:07:13 +01:00
gpheader.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
gpimage-common.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
gpimage.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
ifdtool.c SPDX: Convert a few files that were missed before 2018-05-10 20:38:35 -04:00
ifdtool.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
image-host.c rsa: add a structure for the padding 2018-12-03 10:44:10 -05:00
imagetool.c fdt: Fix FIT header verification in mkimage and conduct same checks as bootm 2019-03-08 11:31:44 -05:00
imagetool.h fdt: Fix FIT header verification in mkimage and conduct same checks as bootm 2019-03-08 11:31:44 -05:00
img2brec.sh Coding Style cleanup: replace leading SPACEs by TABs 2013-10-14 16:06:54 -04:00
img2srec.c treewide: remove unneeded semicolons 2017-06-16 10:11:38 -04:00
imx8image.c Revert "tools: imx8image: set dcd_skip to true" 2019-01-28 12:59:03 +01:00
imx8m_image.sh tools/imx8m_image.sh: remove bashism 2019-04-01 17:52:37 +02:00
imx8mimage.c tools: add i.MX8M image support 2019-01-01 14:12:18 +01:00
imx_cntr_image.sh tools: improve portability of imx_cntr_image.sh 2019-01-01 14:12:18 +01:00
imximage.c tools/imximage: get HAB information from header 2018-07-23 11:04:22 +02:00
jtagconsole Blackfin: jtagconsole: disable output processing 2010-07-25 15:17:23 -04:00
k3_fit_atf.sh arm: mach-k3: Add secure device build support 2019-04-26 17:51:51 -04:00
k3_gen_x509_cert.sh tools: k3_get_x509 cert: Add a script to generate x509 certificate for K3 devices 2019-05-09 20:22:04 -04:00
kwbimage.c kwbimage: fixing the issue with proper return code checking 2019-05-03 08:14:39 +02:00
kwbimage.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
kwboot.c tools: kwboot: Make kwboot more robust on a38x 2018-09-19 08:59:26 +02:00
lpc32xximage.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
Makefile spl: add overall SPL size check 2019-06-07 11:03:39 -04:00
microcode-tool x86: Add a script to process Intel microcode files 2014-12-18 17:26:08 -07:00
microcode-tool.py SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
mingw_support.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
mingw_support.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
mips-relocs.c MIPS: make size of relocation table fixed but configurable 2018-11-02 22:39:07 +01:00
mkenvimage.c tools: mkenvimage: Fix reading from slow pipe 2019-07-18 11:31:26 -04:00
mkexynosspl.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
mkimage.c lib: rsa: add support to other openssl engine types than pkcs11 2019-07-18 11:31:23 -04:00
mkimage.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
mksunxiboot.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
moveconfig.py moveconfig: expand simple expressions 2019-07-09 07:00:04 +02:00
mrvl_uart.sh SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
mtk_image.c tools: mtk_image: replace strncpy(d, s, sizeof(d)) with snprintf() 2018-12-15 11:49:56 -05:00
mtk_image.h tools: MediaTek: add MTK boot header generation to mkimage 2018-11-28 23:04:43 -05:00
mxsboot.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
mxsimage.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
mxsimage.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
ncb.c ncb: Check return value of write() 2009-04-28 01:16:46 +02:00
netconsole net: Make netconsole src and dest ports configurable 2012-09-24 13:17:24 -05:00
omapimage.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
omapimage.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
os_support.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
os_support.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
pbl_crc32.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
pbl_crc32.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
pblimage.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
pblimage.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
prelink-riscv.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
prelink-riscv.inc SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
proftool.c trace: do not limit trace buffer to 2GiB 2019-07-10 16:52:58 -06:00
relocate-rela.c SPDX: Convert all of our multiple license tags to Linux Kernel style 2018-05-07 10:24:31 -04:00
rkcommon.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
rkcommon.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
rkimage.c rockchip: Fix rkimage format for SPL boot over USB 2018-10-04 22:55:47 +02:00
rkmux.py host-tools: use python2 explicitly for shebang 2018-01-28 12:27:30 -05:00
rksd.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
rkspi.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
rmboard.py Add a simple script to remove boards 2019-07-10 16:52:58 -06:00
socfpgaimage.c tools: socfpga: fix sfp_verify_header 2018-10-03 12:56:50 +02:00
spl_size_limit.c spl: add overall SPL size check 2019-06-07 11:03:39 -04:00
stm32image.c mkimage: change stm32image header to manage binary information 2019-05-23 11:36:47 +02:00
sunxi-spl-image-builder.c tools: sunxi: avoid read after end of string 2017-05-05 16:45:57 -04:00
ublimage.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
ublimage.h SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
ubsha1.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
version.h include/version.h: workaround sysroot inc order 2018-09-10 20:20:34 -04:00
vybridimage.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
xway-swap-bytes.c MIPS: INCA-IP: rename inca-swap-bytes host tool 2011-07-31 23:25:41 +09:00
zynqimage.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
zynqmpbif.c tools: zynqmpimage: Align image_size/image_stored_size 2019-01-24 10:03:44 +01:00
zynqmpimage.c tools: zynqmpimage: Add bif support 2018-05-11 09:23:44 +02:00
zynqmpimage.h SPDX: Correct SPDX tags from recent xilinx merge 2018-05-11 14:54:57 -04:00