- ssh_client = getenv("SSH_CLIENT");
- if (ssh_client != NULL) {
- strlcpy(addr_buf, ssh_client, sizeof(addr_buf));
- /* truncate SSH_CLIENT to just IP address */
- p = strchr(addr_buf, ' ');
- if (p)
- *p = '\0';
- else
- strlcpy(addr_buf, "0.0.0.0", sizeof("0.0.0.0"));
- } else
+ if (am_server) {
+ /* daemon over --rsh mode */
+ strcpy(addr_buf, "0.0.0.0");
+ if ((ssh_client = getenv("SSH_CLIENT")) != NULL) {
+ /* truncate SSH_CLIENT to just IP address */
+ p = strchr(ssh_client, ' ');
+ if (p) {
+ len = MIN((unsigned int) (p - ssh_client),
+ sizeof(addr_buf) - 1);
+ strncpy(addr_buf, ssh_client, len);
+ *(addr_buf + len) = '\0';
+ }
+ }
+ } else {