diff options
author | Gerald Carter <jerry@samba.org> | 2003-12-09 18:20:48 +0000 |
---|---|---|
committer | Gerald Carter <jerry@samba.org> | 2003-12-09 18:20:48 +0000 |
commit | 0054ce8707038444bec8c4ac8f0deea12ef65820 (patch) | |
tree | b66625507cf4827188f81bdeec41527e9d15a5f5 | |
parent | 08b6b1e43ce354cfb77701c8953565e1163ff76b (diff) | |
download | samba-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.c | 14 |
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"); } |