diff --git a/gss-serv.c b/gss-serv.c
index 8eb20e9..8fd1d63 100644
--- a/gss-serv.c
+++ b/gss-serv.c
@@ -1,4 +1,4 @@
-/*	$OpenBSD: gss-serv.c,v 1.2 2003/08/31 13:30:18 markus Exp $	*/
+/*	$OpenBSD: gss-serv.c,v 1.3 2003/08/31 13:31:57 markus Exp $	*/
 
 /*
  * Copyright (c) 2001-2003 Simon Wilkinson. All rights reserved.
@@ -137,15 +137,15 @@
 	char *tok;
 	OM_uint32 offset;
 	OM_uint32 oidl;
-	
+
 	tok=ename->value;
-	
-	/* 
-	 * Check that ename is long enough for all of the fixed length 
+
+	/*
+	 * Check that ename is long enough for all of the fixed length
 	 * header, and that the initial ID bytes are correct
 	 */
 
-	if (ename->length<6 || memcmp(tok,"\x04\x01", 2)!=0) 
+	if (ename->length<6 || memcmp(tok,"\x04\x01", 2)!=0)
 		return GSS_S_FAILURE;
 
 	/*
@@ -163,27 +163,27 @@
 	 * string is long enough and that the OID matches that in our context
 	 */
 	if (tok[4] != 0x06 || tok[5] != oidl ||
-	    ename->length < oidl+6 ||        
+	    ename->length < oidl+6 ||
 	   !ssh_gssapi_check_oid(ctx,tok+6,oidl))
 		return GSS_S_FAILURE;
 
 	offset = oidl+6;
-	
+
 	if (ename->length < offset+4)
 		return GSS_S_FAILURE;
-		
+
 	name->length = GET_32BIT(tok+offset);
 	offset += 4;
-	
+
 	if (ename->length < offset+name->length)
-        	return GSS_S_FAILURE;
-	
+		return GSS_S_FAILURE;
+
 	name->value = xmalloc(name->length+1);
 	memcpy(name->value,tok+offset,name->length);
 	((char *)name->value)[name->length] = 0;
 
 	return GSS_S_COMPLETE;
-} 
+}
 
 /* Extract the client details from a given context. This can only reliably
  * be called once for a context */
@@ -195,7 +195,7 @@
 	int i = 0;
 
 	gss_buffer_desc ename;
-	
+
 	client->mech = NULL;
 
 	while (supported_mechs[i]->name != NULL) {
@@ -206,21 +206,21 @@
 		i++;
 	}
 
-	if (client->mech == NULL) 
+	if (client->mech == NULL)
 		return GSS_S_FAILURE;
-	
-	if ((ctx->major = gss_display_name(&ctx->minor, ctx->client, 
+
+	if ((ctx->major = gss_display_name(&ctx->minor, ctx->client,
 	    &client->displayname, NULL))) {
-	        ssh_gssapi_error(ctx);
-	        return (ctx->major);
+		ssh_gssapi_error(ctx);
+		return (ctx->major);
 	}
-	
-	if ((ctx->major = gss_export_name(&ctx->minor, ctx->client, 
+
+	if ((ctx->major = gss_export_name(&ctx->minor, ctx->client,
 	    &ename))) {
 		ssh_gssapi_error(ctx);
 		return (ctx->major);
 	}
-	
+
 	if ((ctx->major = ssh_gssapi_parse_ename(ctx,&ename,
 	    &client->exportedname))) {
 		return (ctx->major);
