lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Date:   Mon, 13 Nov 2017 14:28:23 +0100
From:   Alexander Stein <alexander.stein@...tec-electronic.com>
To:     linux-kbuild@...r.kernel.org
Cc:     linux-kernel@...r.kernel.org
Subject: tools/iio: build race condition

Hi,

I tried to compile the new v4.14 kernel and hit a race condition in the build system of tools/iio.
Here is my output (sorry for German strings, I wasn't able to reproduce with LANG=C):
> {master linux} % make O=build_x86/ -j9 tools/iio
> make[1]: Verzeichnis „/home/alex/Dokumente/repo/linux/build_x86“ wird betreten
>   DESCEND  iio
> mkdir -p /home/alex/Dokumente/repo/linux/build_x86/tools/iio/include/linux/iio 2>&1 || true
> ln -sf /home/alex/Dokumente/repo/linux/tools/iio/../../include/uapi/linux/iio/events.h /home/alex/Dokumente/repo/linux/build_x86/tools/iio/include/linux/iio
> ln -sf /home/alex/Dokumente/repo/linux/tools/iio/../../include/uapi/linux/iio/types.h /home/alex/Dokumente/repo/linux/build_x86/tools/iio/include/linux/iio
>   CC       /home/alex/Dokumente/repo/linux/build_x86/tools/iio/lsiio.o
>   CC       /home/alex/Dokumente/repo/linux/build_x86/tools/iio/iio_event_monitor.o
>   CC       /home/alex/Dokumente/repo/linux/build_x86/tools/iio/iio_utils.o
>   CC       /home/alex/Dokumente/repo/linux/build_x86/tools/iio/iio_utils.o
>   CC       /home/alex/Dokumente/repo/linux/build_x86/tools/iio/iio_generic_buffer.o
>   CC       /home/alex/Dokumente/repo/linux/build_x86/tools/iio/iio_utils.o
>   LD       /home/alex/Dokumente/repo/linux/build_x86/tools/iio/iio_event_monitor-in.o
>   LD       /home/alex/Dokumente/repo/linux/build_x86/tools/iio/lsiio-in.o
> /home/alex/Dokumente/repo/linux/build_x86/tools/iio/iio_utils.o: file not recognized: File truncated
> make[4]: *** [/home/alex/Dokumente/repo/linux/tools/build/Makefile.build:145: /home/alex/Dokumente/repo/linux/build_x86/tools/iio/iio_event_monitor-in.o] Fehler 1
> /home/alex/Dokumente/repo/linux/build_x86/tools/iio/iio_utils.o: file not recognized: File truncated
> make[3]: *** [Makefile:45: /home/alex/Dokumente/repo/linux/build_x86/tools/iio/iio_event_monitor-in.o] Fehler 2
> make[3]: *** Es wird auf noch nicht beendete Prozesse gewartet....
> make[4]: *** [/home/alex/Dokumente/repo/linux/tools/build/Makefile.build:145: /home/alex/Dokumente/repo/linux/build_x86/tools/iio/lsiio-in.o] Fehler 1
> make[3]: *** [Makefile:39: /home/alex/Dokumente/repo/linux/build_x86/tools/iio/lsiio-in.o] Fehler 2
>   LD       /home/alex/Dokumente/repo/linux/build_x86/tools/iio/iio_generic_buffer-in.o
> make[2]: *** [Makefile:62: iio] Fehler 2
> make[1]: *** [/home/alex/Dokumente/repo/linux/Makefile:1628: tools/iio] Fehler 2
> make[1]: Verzeichnis „/home/alex/Dokumente/repo/linux/build_x86“ wird verlassen
> make: *** [Makefile:146: sub-make] Fehler 2

This is my log using LANG=C:
> {master linux} % git describe
> v4.14-3-gd893dbcff8e3
> {master linux} % rm -fr build_x86/tools/
> {master linux} % LANG=C make O=build_x86/ -j9 tools/iio
> make[1]: Entering directory '/home/alex/Dokumente/repo/linux/build_x86'
>   DESCEND  iio
> mkdir -p /home/alex/Dokumente/repo/linux/build_x86/tools/iio/include/linux/iio 2>&1 || true
> ln -sf /home/alex/Dokumente/repo/linux/tools/iio/../../include/uapi/linux/iio/events.h /home/alex/Dokumente/repo/linux/build_x86/tools/iio/include/linux/iio
> ln -sf /home/alex/Dokumente/repo/linux/tools/iio/../../include/uapi/linux/iio/types.h /home/alex/Dokumente/repo/linux/build_x86/tools/iio/include/linux/iio
>   CC       /home/alex/Dokumente/repo/linux/build_x86/tools/iio/iio_event_monitor.o
>   CC       /home/alex/Dokumente/repo/linux/build_x86/tools/iio/iio_utils.o
>   CC       /home/alex/Dokumente/repo/linux/build_x86/tools/iio/lsiio.o
>   CC       /home/alex/Dokumente/repo/linux/build_x86/tools/iio/iio_utils.o
>   CC       /home/alex/Dokumente/repo/linux/build_x86/tools/iio/iio_generic_buffer.o
>   CC       /home/alex/Dokumente/repo/linux/build_x86/tools/iio/iio_utils.o
>   LD       /home/alex/Dokumente/repo/linux/build_x86/tools/iio/iio_event_monitor-in.o
>   LINK     /home/alex/Dokumente/repo/linux/build_x86/tools/iio/iio_event_monitor
>   LD       /home/alex/Dokumente/repo/linux/build_x86/tools/iio/lsiio-in.o
>   LD       /home/alex/Dokumente/repo/linux/build_x86/tools/iio/iio_generic_buffer-in.o
>   LINK     /home/alex/Dokumente/repo/linux/build_x86/tools/iio/lsiio
>   LINK     /home/alex/Dokumente/repo/linux/build_x86/tools/iio/iio_generic_buffer
> make[1]: Leaving directory '/home/alex/Dokumente/repo/linux/build_x86'

In both cases tools/iio/iio_utils.o is compiled thrice. Depending on the exact timing you might get a truncated file.
I suspect the following commit: 18956cf2d78a ("iio: tools: move to tools buildsystem", 2017-07-29)
as iio_utils.o is referenced in all 3 tools.

Best regards,
Alexander

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ