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
commit09c4409375289013e3c38e900cb7557d9846b955 (patch)
treefff9463b64af027da83d81930e602cdb1b30cc55
parent967fb3ec500e534d6dc54bcfe49af2cb1376bb1a (diff)
downloadsamba-09c4409375289013e3c38e900cb7557d9846b955.tar.gz
samba-09c4409375289013e3c38e900cb7557d9846b955.tar.bz2
samba-09c4409375289013e3c38e900cb7557d9846b955.zip
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 0054ce8707038444bec8c4ac8f0deea12ef65820)
-rw-r--r--source3/lib/util_sock.c14
1 files changed, 11 insertions, 3 deletions
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");
}