explicitly set GNUPGHOME in su_monkeysphere_user calls to gpg in add_revoker, to...
authorJameson Graef Rollins <jrollins@finestructure.net>
Fri, 20 Feb 2009 05:38:59 +0000 (00:38 -0500)
committerJameson Graef Rollins <jrollins@finestructure.net>
Fri, 20 Feb 2009 05:38:59 +0000 (00:38 -0500)
src/share/mh/add_revoker

index 239dcfc6fcbb3a743b068988e9cace2bc447c5f3..428b95834927e840c145147478ac970a8ce16410 100644 (file)
@@ -61,24 +61,23 @@ if [ -f "$keyID" -o "$keyID" = '-' ] ; then
 
 # else, get the key from the keyserver
 else
-    # create a temporary directory for storing the downloaded key
-    local GNUPGHOME="$tmpDir"
-    chmod 0700 "$GNUPGHOME"
-    chown "$MONKEYSPHERE_USER":"$MONKEYSPHERE_USER" "$GNUPGHOME"
-    export GNUPGHOME
+    # fix permissions and ownership on temporary directory which will
+    # be used by monkeysphere user for storing the downloaded key
+    chmod 0700 "$tmpDir"
+    chown "$MONKEYSPHERE_USER":"$MONKEYSPHERE_USER" "$tmpDir"
 
     # download the key from the keyserver as the monkeysphere user
     log verbose "searching keyserver $KEYSERVER for keyID $keyID..."
-    su_monkeysphere_user "gpg --quiet --keyserver $KEYSERVER --recv-key 0x${keyID}!" \
+    su_monkeysphere_user "GNUPGHOME=$tmpDir gpg --quiet --keyserver $KEYSERVER --recv-key 0x${keyID}!" \
        || failure "Could not receive a key with this ID from the '$KEYSERVER' keyserver."
 
     # get the full fingerprint of new revoker key
     log debug "getting fingerprint of revoker key..."
-    fingerprint=$(su_monkeysphere_user "gpg --list-key --with-colons --with-fingerprint 0x${keyID}!" \
+    fingerprint=$(su_monkeysphere_user "GNUPGHOME=$tmpDir gpg --list-key --with-colons --with-fingerprint 0x${keyID}!" \
        | grep '^fpr:' | grep "$keyID" | cut -d: -f10)
 
     log info "key found:"
-    su_monkeysphere_user "gpg --fingerprint 0x${fingerprint}!"
+    su_monkeysphere_user "GNUPGHOME=$tmpDir gpg --fingerprint 0x${fingerprint}!"
 
     if [ "$PROMPT" = "true" ] ; then
        echo "Are you sure you want to add the above key as a"
@@ -92,7 +91,7 @@ else
 
     # export the new key to the host keyring
     log debug "loading key into host keyring..."
-    su_monkeysphere_user "gpg --quiet --export 0x${fingerprint}!" \
+    su_monkeysphere_user "GNUPGHOME=$tmpDir gpg --quiet --export 0x${fingerprint}!" \
        | gpg_host --import
 fi