From: Saul Wold Date: Fri, 5 Apr 2013 17:09:31 +0000 (-0700) Subject: tinylogin: fix segfault from crypt() X-Git-Tag: rev_ivi_2015_02_04~13009 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=00e0a6bb83a8107428d0496347cefa0023f74e45;p=scm%2Fbb%2Ftizen-distro.git tinylogin: fix segfault from crypt() In glibc 2.17, crypt() now expects 2 valid chars for the seed or it will error out and return a NULL. The tinylogin code took the result from crypt directly into a strcmp() which caused a segfault Tinylogin has been deperacted, busybox now has login support, I will investigate using busybox login support for 1.5. [YOCTO #4097] (From OE-Core rev: 03034e0f5dff426ee7adaa2364082dd47c23260a) Signed-off-by: Saul Wold Signed-off-by: Richard Purdie --- diff --git a/meta/recipes-core/tinylogin/tinylogin-1.4/glibc_crypt_fix.patch b/meta/recipes-core/tinylogin/tinylogin-1.4/glibc_crypt_fix.patch new file mode 100644 index 0000000..0a24656 --- /dev/null +++ b/meta/recipes-core/tinylogin/tinylogin-1.4/glibc_crypt_fix.patch @@ -0,0 +1,23 @@ + +staring from glibc 2.17 the crypt() function will error out and return +NULL if the seed or "correct" is invalid. The failure case for this is +an unknown user which tinylogin assigns '!' for the password. crypt() +now expects a minimum of 2 valid characters. If we get a NULL return +value from the crypt, assume we fail and return 0. + +Upstream-Status: Inappropriate [tinylogin depercated] +Signed-off-by: Saul Wold + +Index: tinylogin-1.4/libbb/correct_password.c +=================================================================== +--- tinylogin-1.4.orig/libbb/correct_password.c ++++ tinylogin-1.4/libbb/correct_password.c +@@ -74,5 +74,8 @@ int correct_password ( const struct pass + } + encrypted = crypt ( unencrypted, correct ); + memset ( unencrypted, 0, xstrlen ( unencrypted )); ++ if ( !encrypted ) ++ return 0; ++ + return ( strcmp ( encrypted, correct ) == 0 ) ? 1 : 0; + } diff --git a/meta/recipes-core/tinylogin/tinylogin_1.4.bb b/meta/recipes-core/tinylogin/tinylogin_1.4.bb index aaed92a..6e08011 100644 --- a/meta/recipes-core/tinylogin/tinylogin_1.4.bb +++ b/meta/recipes-core/tinylogin/tinylogin_1.4.bb @@ -18,7 +18,9 @@ SRC_URI = "http://www.angstrom-distribution.org/unstable/sources/tinylogin-${PV} file://remove-index.patch \ file://use_O2_option.patch \ file://passwd_rotate_check.patch \ - file://avoid_static.patch" + file://avoid_static.patch \ + file://glibc_crypt_fix.patch \ + " SRC_URI[md5sum] = "44da0ff2b727455669890b24305e351d" SRC_URI[sha256sum] = "5e542e4b7825305a3678bf73136c392feb0d44b8bbf926e8eda5453eea7ddd6b"