summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGerald Carter <jerry@samba.org>2003-12-09 18:20:48 +0000
committerGerald Carter <jerry@samba.org>2003-12-09 18:20:48 +0000
commit0054ce8707038444bec8c4ac8f0deea12ef65820 (patch)
treeb66625507cf4827188f81bdeec41527e9d15a5f5
parent08b6b1e43ce354cfb77701c8953565e1163ff76b (diff)
downloadsamba-0054ce8707038444bec8c4ac8f0deea12ef65820.tar.gz
fix bug in get_peer_name() caused by --enable-developer and using the same src & dest strings to alpha_strcpy(); reported by Michael Young
-rw-r--r--source/lib/util_sock.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/source/lib/util_sock.c b/source/lib/util_sock.c
index 1d62da53c5b..328ca927277 100644
--- a/source/lib/util_sock.c
+++ b/source/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");
}