mgorny      15/02/19 16:58:37

  Added:                xrdp-0.8.0-crypt-null-return.patch
  Log:
  Patch out crypt() NULL return check vulnerability, bug #540630. Remove old.
  
  (Portage version: 2.2.17/cvs/Linux x86_64, signed Manifest commit with key 
EFB4464E!)

Revision  Changes    Path
1.1                  net-misc/xrdp/files/xrdp-0.8.0-crypt-null-return.patch

file : 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/net-misc/xrdp/files/xrdp-0.8.0-crypt-null-return.patch?rev=1.1&view=markup
plain: 
http://sources.gentoo.org/viewvc.cgi/gentoo-x86/net-misc/xrdp/files/xrdp-0.8.0-crypt-null-return.patch?rev=1.1&content-type=text/plain

Index: xrdp-0.8.0-crypt-null-return.patch
===================================================================
>From 851c762ee722a84d15348b2512b3b578282e590b Mon Sep 17 00:00:00 2001
From: Jay Sorg <jay.s...@gmail.com>
Date: Wed, 29 Oct 2014 17:54:11 -0700
Subject: [PATCH] sesman: check for null from crypt()

---
 sesman/verify_user.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/sesman/verify_user.c b/sesman/verify_user.c
index 98d3dd3..49c475c 100644
--- a/sesman/verify_user.c
+++ b/sesman/verify_user.c
@@ -51,6 +51,7 @@ long DEFAULT_CC
 auth_userpass(char *user, char *pass, int *errorcode)
 {
     const char *encr;
+    const char *epass;
     struct passwd *spw;
     struct spwd *stp;
 
@@ -84,8 +85,12 @@ auth_userpass(char *user, char *pass, int *errorcode)
         /* old system with only passwd */
         encr = spw->pw_passwd;
     }
-
-    return (strcmp(encr, crypt(pass, encr)) == 0);
+    epass = crypt(pass, encr);
+    if (epass == 0)
+    {
+        return 0;
+    }
+    return (strcmp(encr, epass) == 0);
 }
 
 
/******************************************************************************/




Reply via email to