From: Marc Fiuczynski Date: Fri, 29 Aug 2008 14:23:02 +0000 (+0000) Subject: Sometimes the gpg script when run inside an improperly configured X-Git-Tag: MyPLC-4.3-1~5 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=f2c0fc1a912ffcfb759c9d423aa21d1eadc99eef;p=myplc.git Sometimes the gpg script when run inside an improperly configured vserver (i.e., one where mknod fails.). Two improvements to the script: - remove zero length *.gpg files, as those are turds left over from a failed gpg command. - add in a "check" after the mknod command to have the script fail more gracefully. --- diff --git a/plc.d/gpg b/plc.d/gpg index 60617e3..5fd3923 100755 --- a/plc.d/gpg +++ b/plc.d/gpg @@ -22,6 +22,15 @@ case "$1" in # Make temporary GPG home directory homedir=$(mktemp -d /tmp/gpg.XXXXXX) + # in case a previous gpg invocation failed in some weird way + # and left behind a zero length gpg key (pub or priv). + if [ -f $PLC_ROOT_GPG_KEY_PUB -a ! -s $PLC_ROOT_GPG_KEY_PUB ] ; then + rm -f $PLC_ROOT_GPG_KEY_PUB + fi + if [ -f $PLC_ROOT_GPG_KEY -a ! -s $PLC_ROOT_GPG_KEY ] ; then + rm -f $PLC_ROOT_GPG_KEY + fi + if [ ! -f $PLC_ROOT_GPG_KEY_PUB -o ! -f $PLC_ROOT_GPG_KEY ] ; then # Generate new GPG keyring MESSAGE=$"Generating GPG keys" @@ -33,7 +42,10 @@ case "$1" in # Temporarily replace /dev/random with /dev/urandom to # avoid running out of entropy. rm -f /dev/random + # 1 9 is /dev/urandom mknod /dev/random c 1 9 + # sometimes mknod fails within an improperly setup vserver + check gpg --homedir=$homedir --no-permission-warning --batch --no-tty --yes \ --gen-key <