Re: random pool entropy starvation in initrd with parse-kickstart

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Some pieces of dracut have been written to avoid execve(). [I did some work for
40network/module-setup.sh.]  Other pieces have not.  As you have discovered,
the result is a voracious appetite for entropy for AT_RANDOM.

In 2011 I implemented a feature which correlates system calls from bash
with the function name and line number of the current executing shell script.
This allowed me to locate the portions of the script that used execve,
then rewrite them to avoid execve where possible.

bash-syspose uses the LD_PRELOAD feature of GNU glibc C library, the PS4 feature
of GNU bash shell, and a compatible two-line tweak to the source of bash itself,
to trace a bash shell script by system call.  An example output line on stderr is:

  0.230123 check@6 < dracut-functions:646 16223:execve("/bin/uname", ["uname", "-m"], 60 vars) = 0

where
  0.230123  elapsed time in seconds since start of tracing
  check@6   current executing function name and line number in script file
  dracut-functions:646   file name and line number of caller of current function
  16223     current process PID
  execve("/bin/uname", ... ) = 0   syscall(arguments) = result [similar to strace]

bash-syspose is implemented as a small (500 lines) C-code shared library which
intercepts (via LD_PRELOAD) selected system calls that bash makes. During inter-
ception, bash-syspose evaluates the PS4 prompt and uses the result as the main
part of tracing output. A two-line tweak to the bash source makes evaluating PS4
essentially transparent to the rest of bash.

_______________________________________________
Anaconda-devel-list mailing list
Anaconda-devel-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/anaconda-devel-list



[Index of Archives]     [Kickstart]     [Fedora Users]     [Fedora Legacy List]     [Fedora Maintainers]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [Yosemite Photos]     [KDE Users]     [Fedora Tools]
  Powered by Linux