=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/ssh/auth2-gss.c,v retrieving revision 1.33 retrieving revision 1.34 diff -u -r1.33 -r1.34 --- src/usr.bin/ssh/auth2-gss.c 2021/12/19 22:12:07 1.33 +++ src/usr.bin/ssh/auth2-gss.c 2023/03/31 04:22:27 1.34 @@ -1,4 +1,4 @@ -/* $OpenBSD: auth2-gss.c,v 1.33 2021/12/19 22:12:07 djm Exp $ */ +/* $OpenBSD: auth2-gss.c,v 1.34 2023/03/31 04:22:27 djm Exp $ */ /* * Copyright (c) 2001-2003 Simon Wilkinson. All rights reserved. @@ -43,6 +43,8 @@ #include "ssh-gss.h" #include "monitor_wrap.h" +#define SSH_GSSAPI_MAX_MECHS 2048 + extern ServerOptions options; static int input_gssapi_token(int type, u_int32_t plen, struct ssh *ssh); @@ -70,8 +72,12 @@ fatal_fr(r, "parse packet"); if (mechs == 0) { - debug("Mechanism negotiation is not supported"); + logit_f("mechanism negotiation is not supported"); return (0); + } else if (mechs > SSH_GSSAPI_MAX_MECHS) { + logit_f("too many mechanisms requested %u > %u", mechs, + SSH_GSSAPI_MAX_MECHS); + return (0); } do { @@ -89,7 +95,7 @@ goid.length = len - 2; ssh_gssapi_test_oid_supported(&ms, &goid, &present); } else { - logit("Badly formed OID received"); + logit_f("badly formed OID received"); } } while (mechs > 0 && !present);