]> granicus.if.org Git - sudo/commitdiff
Bring back VALIDATE_ERROR which will be used in the case of memory
authorTodd C. Miller <Todd.Miller@courtesan.com>
Fri, 5 Jun 2015 02:42:42 +0000 (20:42 -0600)
committerTodd C. Miller <Todd.Miller@courtesan.com>
Fri, 5 Jun 2015 02:42:42 +0000 (20:42 -0600)
allocation errors.

plugins/sudoers/logging.c
plugins/sudoers/sudoers.c
plugins/sudoers/sudoers.h

index 16f50fc7a50a10e1e386ce8d90de73651a4b9a54..5e4cf6847a5e69417d387a24671ac8376ac862fc 100644 (file)
@@ -770,7 +770,7 @@ should_mail(int status)
 {
     debug_decl(should_mail, SUDOERS_DEBUG_LOGGING)
 
-    debug_return_bool(def_mail_always ||
+    debug_return_bool(def_mail_always || ISSET(status, VALIDATE_ERROR) ||
        (def_mail_all_cmnds && ISSET(sudo_mode, (MODE_RUN|MODE_EDIT))) ||
        (def_mail_no_user && ISSET(status, FLAG_NO_USER)) ||
        (def_mail_no_host && ISSET(status, FLAG_NO_HOST)) ||
index cdeadcac155cff3d9087e39ae1796844d4e838d9..8d6b1db7c4bf9a59ef2e84f22ca222dac49b270c 100644 (file)
@@ -294,7 +294,11 @@ sudoers_policy_main(int argc, char * const argv[], int pwflag, char *env_add[],
     TAILQ_FOREACH(nss, snl, entries) {
        validated = nss->lookup(nss, validated, pwflag);
 
-       if (ISSET(validated, VALIDATE_SUCCESS)) {
+       if (ISSET(validated, VALIDATE_ERROR)) {
+           /* The lookup function should have printed an error. */
+           rval = -1;
+           goto done;
+       } else if (ISSET(validated, VALIDATE_SUCCESS)) {
            /* Handle [SUCCESS=return] */
            if (nss->ret_if_found)
                break;
index de4e87f3f223081b527bfdb0feee40a99ccfc8c7..b44c118e0a98b40f0384f17f71905a6fede71bfa 100644 (file)
@@ -113,8 +113,9 @@ struct sudo_user {
  * Return values for sudoers_lookup(), also used as arguments for log_auth()
  * Note: cannot use '0' as a value here.
  */
-#define VALIDATE_SUCCESS       0x001
-#define VALIDATE_FAILURE       0x002
+#define VALIDATE_ERROR         0x001
+#define VALIDATE_SUCCESS       0x002
+#define VALIDATE_FAILURE       0x004
 #define FLAG_CHECK_USER                0x010
 #define FLAG_NO_USER           0x020
 #define FLAG_NO_HOST           0x040