Mercurial > dropbear
comparison scpmisc.c @ 1630:9579377b5f8b
use strlcpy & strlcat (#74)
* refactor checkpubkeyperms() with safe BSD functions
fix gcc8 warnings
```
svr-authpubkey.c: In function 'checkpubkeyperms':
svr-authpubkey.c:427:2: warning: 'strncat' specified bound 5 equals source length [-Wstringop-overflow=]
strncat(filename, "/.ssh", 5); /* strlen("/.ssh") == 5 */
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
svr-authpubkey.c:433:2: warning: 'strncat' specified bound 16 equals source length [-Wstringop-overflow=]
strncat(filename, "/authorized_keys", 16);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
```
see https://www.sudo.ws/todd/papers/strlcpy.html
* restore strlcpy in xstrdup
see original https://cvsweb.openbsd.org/cgi-bin/cvsweb/src/usr.bin/ssh/xmalloc.c?rev=1.16
author | François Perrad <francois.perrad@gadz.org> |
---|---|
date | Wed, 20 Mar 2019 15:09:19 +0100 |
parents | e7f11ed5fe28 |
children |
comparison
equal
deleted
inserted
replaced
1629:258b57b208ae | 1630:9579377b5f8b |
---|---|
100 size_t len; | 100 size_t len; |
101 char *cp; | 101 char *cp; |
102 | 102 |
103 len = strlen(str) + 1; | 103 len = strlen(str) + 1; |
104 cp = xmalloc(len); | 104 cp = xmalloc(len); |
105 strncpy(cp, str, len); | 105 strlcpy(cp, str, len); |
106 return cp; | 106 return cp; |
107 } | 107 } |
108 | 108 |
109 char * | 109 char * |
110 cleanhostname(char *host) | 110 cleanhostname(char *host) |