The ssh_allow_empty_password function doesn't check if
sshd_config_readonly exists before running sed which can result in an
error if sshd_config exists but sshd_config_readonly doesn't.

Signed-off-by: Jonathan Liu <net...@gmail.com>
---
 meta/classes/rootfs-postcommands.bbclass | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/meta/classes/rootfs-postcommands.bbclass 
b/meta/classes/rootfs-postcommands.bbclass
index f5d6147..e184667 100644
--- a/meta/classes/rootfs-postcommands.bbclass
+++ b/meta/classes/rootfs-postcommands.bbclass
@@ -112,10 +112,12 @@ zap_empty_root_password () {
 # allow dropbear/openssh to accept root logins and logins from accounts with 
an empty password string
 #
 ssh_allow_empty_password () {
-       if [ -e ${IMAGE_ROOTFS}${sysconfdir}/ssh/sshd_config ]; then
-               sed -i 's/^[#[:space:]]*PermitRootLogin.*/PermitRootLogin yes/' 
${IMAGE_ROOTFS}${sysconfdir}/ssh/sshd_config 
${IMAGE_ROOTFS}${sysconfdir}/ssh/sshd_config_readonly
-               sed -i 
's/^[#[:space:]]*PermitEmptyPasswords.*/PermitEmptyPasswords yes/' 
${IMAGE_ROOTFS}${sysconfdir}/ssh/sshd_config 
${IMAGE_ROOTFS}${sysconfdir}/ssh/sshd_config_readonly
-       fi
+       for config in sshd_config sshd_config_readonly; do
+               if [ -e ${IMAGE_ROOTFS}${sysconfdir}/ssh/$config ]; then
+                       sed -i 
's/^[#[:space:]]*PermitRootLogin.*/PermitRootLogin yes/' 
${IMAGE_ROOTFS}${sysconfdir}/ssh/$config
+                       sed -i 
's/^[#[:space:]]*PermitEmptyPasswords.*/PermitEmptyPasswords yes/' 
${IMAGE_ROOTFS}${sysconfdir}/ssh/$config
+               fi
+       done
 
        if [ -e ${IMAGE_ROOTFS}${sbindir}/dropbear ] ; then
                if grep -q DROPBEAR_EXTRA_ARGS 
${IMAGE_ROOTFS}${sysconfdir}/default/dropbear 2>/dev/null ; then
-- 
2.7.1

-- 
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Reply via email to