]> granicus.if.org Git - sudo/commitdiff
Ignore callbacks if major version doesn't match.
authorTodd C. Miller <Todd.Miller@courtesan.com>
Wed, 9 Sep 2015 19:29:57 +0000 (13:29 -0600)
committerTodd C. Miller <Todd.Miller@courtesan.com>
Wed, 9 Sep 2015 19:29:57 +0000 (13:29 -0600)
src/tgetpass.c

index e3355015a3222dd6fb6b9062c44773e86dc7cccf..fbda893736464777662e1c99d1fae2d3d929addd 100644 (file)
@@ -57,6 +57,14 @@ suspend(int signo, struct sudo_conv_callback *callback)
     int rval = 0;
     debug_decl(suspend, SUDO_DEBUG_CONV)
 
+    if (callback != NULL && SUDO_API_VERSION_GET_MAJOR(callback->version) != SUDO_CONV_CALLBACK_VERSION_MAJOR) {
+       sudo_debug_printf(SUDO_DEBUG_WARN|SUDO_DEBUG_LINENO,
+           "callback major version mismatch, expected %u, got %u",
+           SUDO_CONV_CALLBACK_VERSION_MAJOR,
+           SUDO_API_VERSION_GET_MAJOR(callback->version));
+       callback = NULL;
+    }
+
     if (callback != NULL && callback->on_suspend != NULL) {
        if (callback->on_suspend(signo, callback->closure) == -1)
            rval = -1;