From e25b7b8eed38942dc8daaff3b7273c1c60fe82f0 Mon Sep 17 00:00:00 2001 From: Gerald Carter Date: Tue, 9 Dec 2003 18:20:27 +0000 Subject: fix bug in get_peer_name() caused by --enable-developer and using the same src & dest strings to alpha_strcpy(); reported by Michael Young (This used to be commit b7df6849c9368aa2e5960de54a03be269ab89fef) --- source3/lib/util_sock.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'source3/lib/util_sock.c') diff --git a/source3/lib/util_sock.c b/source3/lib/util_sock.c index 1d62da53c5..328ca92727 100644 --- a/source3/lib/util_sock.c +++ b/source3/lib/util_sock.c @@ -874,6 +874,7 @@ static BOOL matchname(char *remotehost,struct in_addr addr) char *get_peer_name(int fd, BOOL force_lookup) { static pstring name_buf; + pstring tmp_name; static fstring addr_buf; struct hostent *hp; struct in_addr addr; @@ -890,10 +891,12 @@ char *get_peer_name(int fd, BOOL force_lookup) p = get_peer_addr(fd); /* it might be the same as the last one - save some DNS work */ - if (strcmp(p, addr_buf) == 0) return name_buf; + if (strcmp(p, addr_buf) == 0) + return name_buf; pstrcpy(name_buf,"UNKNOWN"); - if (fd == -1) return name_buf; + if (fd == -1) + return name_buf; fstrcpy(addr_buf, p); @@ -911,7 +914,12 @@ char *get_peer_name(int fd, BOOL force_lookup) } } - alpha_strcpy(name_buf, name_buf, "_-.", sizeof(name_buf)); + /* can't pass the same source and dest strings in when you + use --enable-developer or the clobber_region() call will + get you */ + + pstrcpy( tmp_name, name_buf ); + alpha_strcpy(name_buf, tmp_name, "_-.", sizeof(name_buf)); if (strstr(name_buf,"..")) { pstrcpy(name_buf, "UNKNOWN"); } -- cgit