From: Todd C. Miller Date: Wed, 9 Sep 2015 19:29:57 +0000 (-0600) Subject: Ignore callbacks if major version doesn't match. X-Git-Tag: SUDO_1_8_15^2~59 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=2f1d6750553c12a699637afefba5a8ba0d9d2c5a;p=sudo Ignore callbacks if major version doesn't match. --- diff --git a/src/tgetpass.c b/src/tgetpass.c index e3355015a..fbda89373 100644 --- a/src/tgetpass.c +++ b/src/tgetpass.c @@ -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;