Subject: bug#21918: 'visudo' non-deterministic (sudo 1.8.15)

From: [email-masked] (Ludovic Courtès)
Date: Sat, 14 Nov 2015 16:45:37 +0100

The ‘visudo’ bits can differ depending on the phase of moon.

In Diffoscope we see a tiny difference in its .rodata section:

--8<---------------cut here---------------start------------->8---
7241 	Contents·​of·​section·​.​rodata:​ 	7241 	Contents·​of·​section·​.​rodata:​
7242 	·​1c580·​01000200·​65646974·​6f722e63·​00200900·​·​.​.​.​.​editor.​c.​·​.​.​ 	7242 	·​1c580·​01000200·​65646974·​6f722e63·​00200900·​·​.​.​.​.​editor.​c.​·​.​.​
7243 	·​1c590·​756e6162·​6c652074·​6f20616c·​6c6f6361·​·​unable·​to·​alloca 	7243 	·​1c590·​756e6162·​6c652074·​6f20616c·​6c6f6361·​·​unable·​to·​alloca
7244 	·​1c5a0·​7465206d·​656d6f72·​79002d2d·​00726573·​·​te·​memory.​-​-​.​res 	7244 	·​1c5a0·​7465206d·​656d6f72·​79002d2d·​00726573·​·​te·​memory.​-​-​.​res
7245 	·​1c5b0·​6f6c7665·​5f656469·​746f7200·​2e2f6669·​·​olve_editor.​.​/​fi 	7245 	·​1c5b0·​6f6c7665·​5f656469·​746f7200·​66696e64·​·​olve_editor.​find
7246 	·​1c5c0·​6e645f70·​6174682e·​63003a00·​252e2a73·​·​nd_path.​c.​:​.​%.​*s 	7246 	·​1c5c0·​5f706174·​682e6300·​3a00252e·​2a732f25·​·​_path.​c.​:​.​%.​*s/​%
--8<---------------cut here---------------end--------------->8---

On the left-hand side, we see “./find_path.c”; on the right-hand side,
it’s just “find_path.c”.

Looking at the build logs, we have:

--8<---------------cut here---------------start------------->8---
/gnu/store/311nvir0pz1mhf0mgsmfrw00qfj7yq0j-bash-4.3.39/bin/bash ../../libtool  --mode=compile gcc -std=gnu99 -c -I../../include -I../.. -I. -I. -I../.. -DLIBDIR=\"/gnu/store/chyca85i2xfib5c5inj1bd6sq5vl56in-sudo-1.8.15/lib\" -DLOCALEDIR=\"/gnu/store/chyca85i2xfib5c5inj1bd6sq5vl56in-sudo-1.8.15/share/locale\" -D_PATH_SUDOERS=\"/etc/sudoers\" -DSUDOERS_UID=0 -DSUDOERS_GID=0 -DSUDOERS_MODE=0440 -D_PATH_MV='"/gnu/store/mnwjrkbfzkb5ifhqf8hssf3cxfvg11l6-coreutils-8.24/bin/mv"' -D_FORTIFY_SOURCE=2 -g -O2 -fvisibility=hidden -fPIE -fstack-protector-strong ./find_path.c
--8<---------------cut here---------------end--------------->8---

versus:

--8<---------------cut here---------------start------------->8---
/gnu/store/311nvir0pz1mhf0mgsmfrw00qfj7yq0j-bash-4.3.39/bin/bash ../../libtool  --mode=compile gcc -std=gnu99 -c -I../../include -I../.. -I. -I. -I../.. -DLIBDIR=\"/gnu/store/chyca85i2xfib5c5inj1bd6sq5vl56in-sudo-1.8.15/lib\" -DLOCALEDIR=\"/gnu/store/chyca85i2xfib5c5inj1bd6sq5vl56in-sudo-1.8.15/share/locale\" -D_PATH_SUDOERS=\"/etc/sudoers\" -DSUDOERS_UID=0 -DSUDOERS_GID=0 -DSUDOERS_MODE=0440 -D_PATH_MV='"/gnu/store/mnwjrkbfzkb5ifhqf8hssf3cxfvg11l6-coreutils-8.24/bin/mv"' -D_FORTIFY_SOURCE=2 -g -O2 -fvisibility=hidden -fPIE -fstack-protector-strong ./find_path.c

[…]

gcc -std=gnu99 -c -I../../include -I../.. -I. -I. -I../.. -DLIBDIR=\"/gnu/store/chyca85i2xfib5c5inj1bd6sq5vl56in-sudo-1.8.15/lib\" -DLOCALEDIR=\"/gnu/store/chyca85i2xfib5c5inj1bd6sq5vl56in-sudo-1.8.15/share/locale\" -D_PATH_SUDOERS=\"/etc/sudoers\" -DSUDOERS_UID=0 -DSUDOERS_GID=0 -DSUDOERS_MODE=0440 -D_PATH_MV='"/gnu/store/mnwjrkbfzkb5ifhqf8hssf3cxfvg11l6-coreutils-8.24/bin/mv"' -D_FORTIFY_SOURCE=2 -g -O2 -fvisibility=hidden -fPIE -fstack-protector-strong find_path.c
--8<---------------cut here---------------end--------------->8---

(See
<http://hydra.gnu.org/log/chyca85i2xfib5c5inj1bd6sq5vl56in-sudo-1.8.15>.)

Ludo’.