Make sure sftp_get_limits() only returns 0 if 'limits' was initialized.
authortobhe <tobhe@openbsd.org>
Mon, 13 Nov 2023 09:18:19 +0000 (09:18 +0000)
committertobhe <tobhe@openbsd.org>
Mon, 13 Nov 2023 09:18:19 +0000 (09:18 +0000)
This fixes a potential uninitialized use of 'limits' in sftp_init() if
sftp_get_limits() returned early because of an unexpected message type.

ok djm@

usr.bin/ssh/sftp-client.c

index c30d782..f4dc2b0 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: sftp-client.c,v 1.174 2023/09/08 06:10:02 djm Exp $ */
+/* $OpenBSD: sftp-client.c,v 1.175 2023/11/13 09:18:19 tobhe Exp $ */
 /*
  * Copyright (c) 2001-2004 Damien Miller <djm@openbsd.org>
  *
@@ -636,7 +636,7 @@ sftp_get_limits(struct sftp_conn *conn, struct sftp_limits *limits)
                /* Disable the limits extension */
                conn->exts &= ~SFTP_EXT_LIMITS;
                sshbuf_free(msg);
-               return 0;
+               return -1;
        }
 
        memset(limits, 0, sizeof(*limits));