summaryrefslogtreecommitdiff
path: root/auth2.c
diff options
context:
space:
mode:
authorDamien Miller <djm@mindrot.org>2010-08-31 22:36:39 +1000
committerDamien Miller <djm@mindrot.org>2010-08-31 22:36:39 +1000
commitda108ece6843f1268aa36d7c8ed0030dc53acd15 (patch)
tree66638a1716374a8d1ac8ece95dceea56ce231a5c /auth2.c
parentd96546f5b0f7c57395a338dbb9ac3ac5a48b77fa (diff)
- djm@cvs.openbsd.org 2010/08/31 09:58:37
[auth-options.c auth1.c auth2.c bufaux.c buffer.h kex.c key.c packet.c] [packet.h ssh-dss.c ssh-rsa.c] Add buffer_get_cstring() and related functions that verify that the string extracted from the buffer contains no embedded \0 characters* This prevents random (possibly malicious) crap from being appended to strings where it would not be noticed if the string is used with a string(3) function. Use the new API in a few sensitive places. * actually, we allow a single one at the end of the string for now because we don't know how many deployed implementations get this wrong, but don't count on this to remain indefinitely.
Diffstat (limited to 'auth2.c')
-rw-r--r--auth2.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/auth2.c b/auth2.c
index 5d5468559..95820f96f 100644
--- a/auth2.c
+++ b/auth2.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: auth2.c,v 1.121 2009/06/22 05:39:28 dtucker Exp $ */ 1/* $OpenBSD: auth2.c,v 1.122 2010/08/31 09:58:37 djm Exp $ */
2/* 2/*
3 * Copyright (c) 2000 Markus Friedl. All rights reserved. 3 * Copyright (c) 2000 Markus Friedl. All rights reserved.
4 * 4 *
@@ -182,7 +182,7 @@ input_service_request(int type, u_int32_t seq, void *ctxt)
182 Authctxt *authctxt = ctxt; 182 Authctxt *authctxt = ctxt;
183 u_int len; 183 u_int len;
184 int acceptit = 0; 184 int acceptit = 0;
185 char *service = packet_get_string(&len); 185 char *service = packet_get_cstring(&len);
186 packet_check_eom(); 186 packet_check_eom();
187 187
188 if (authctxt == NULL) 188 if (authctxt == NULL)
@@ -221,9 +221,9 @@ input_userauth_request(int type, u_int32_t seq, void *ctxt)
221 if (authctxt == NULL) 221 if (authctxt == NULL)
222 fatal("input_userauth_request: no authctxt"); 222 fatal("input_userauth_request: no authctxt");
223 223
224 user = packet_get_string(NULL); 224 user = packet_get_cstring(NULL);
225 service = packet_get_string(NULL); 225 service = packet_get_cstring(NULL);
226 method = packet_get_string(NULL); 226 method = packet_get_cstring(NULL);
227 debug("userauth-request for user %s service %s method %s", user, service, method); 227 debug("userauth-request for user %s service %s method %s", user, service, method);
228 debug("attempt %d failures %d", authctxt->attempt, authctxt->failures); 228 debug("attempt %d failures %d", authctxt->attempt, authctxt->failures);
229 229