Module Name: src Committed By: christos Date: Wed Mar 16 21:38:22 UTC 2016
Modified Files: src/lib/libwrap: rfc931.c Log Message: Avoid setjmp clobbering. To generate a diff of this commit: cvs rdiff -u -r1.10 -r1.11 src/lib/libwrap/rfc931.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/lib/libwrap/rfc931.c diff -u src/lib/libwrap/rfc931.c:1.10 src/lib/libwrap/rfc931.c:1.11 --- src/lib/libwrap/rfc931.c:1.10 Thu Mar 22 18:59:43 2012 +++ src/lib/libwrap/rfc931.c Wed Mar 16 17:38:22 2016 @@ -1,4 +1,4 @@ -/* $NetBSD: rfc931.c,v 1.10 2012/03/22 22:59:43 joerg Exp $ */ +/* $NetBSD: rfc931.c,v 1.11 2016/03/16 21:38:22 christos Exp $ */ /* * rfc931() speaks a common subset of the RFC 931, AUTH, TAP, IDENT and RFC @@ -16,7 +16,7 @@ #if 0 static char sccsid[] = "@(#) rfc931.c 1.10 95/01/02 16:11:34"; #else -__RCSID("$NetBSD: rfc931.c,v 1.10 2012/03/22 22:59:43 joerg Exp $"); +__RCSID("$NetBSD: rfc931.c,v 1.11 2016/03/16 21:38:22 christos Exp $"); #endif #endif @@ -87,7 +87,7 @@ rfc931(struct sockaddr *rmt_sin, struct char user[256]; /* XXX */ char buffer[512]; /* XXX */ char *cp; - char *result = unknown; + static char *result = unknown; FILE *fp; volatile int salen; u_short * volatile rmt_portp; @@ -95,7 +95,7 @@ rfc931(struct sockaddr *rmt_sin, struct /* address family must be the same */ if (rmt_sin->sa_family != our_sin->sa_family) { - strlcpy(dest, result, STRING_LENGTH); + strlcpy(dest, unknown, STRING_LENGTH); return; } switch (rmt_sin->sa_family) { @@ -110,7 +110,7 @@ rfc931(struct sockaddr *rmt_sin, struct break; #endif default: - strlcpy(dest, result, STRING_LENGTH); + strlcpy(dest, unknown, STRING_LENGTH); return; } switch (our_sin->sa_family) { @@ -123,15 +123,10 @@ rfc931(struct sockaddr *rmt_sin, struct break; #endif default: - strlcpy(dest, result, STRING_LENGTH); + strlcpy(dest, unknown, STRING_LENGTH); return; } -#ifdef __GNUC__ - (void)&result; /* Avoid longjmp clobbering */ - (void)&fp; /* XXX gcc */ -#endif - /* * Use one unbuffered stdio stream for writing to and for reading from * the RFC931 etc. server. This is done because of a bug in the SunOS