diff options
author | Tomasz Konojacki <me@xenu.pl> | 2020-04-30 06:42:40 +0000 |
---|---|---|
committer | H.Merijn Brand <h.m.brand@xs4all.nl> | 2020-05-19 09:03:49 +0200 |
commit | 5fd8dd0d3bb7aa8dd0a0a8602deb24bb3323bd5c (patch) | |
tree | beba1d61ff2073c745dc688ece8412a5d4cb65a3 /pp_sys.c | |
parent | 0a49e94867e32932f6fac0fc9297840a8b9ef6cf (diff) | |
download | perl-5fd8dd0d3bb7aa8dd0a0a8602deb24bb3323bd5c.tar.gz |
pp_sys.c: don't hardcode socket address buffer size
When it's possible, use sizeof(struct sockaddr_storage).
fixes #17761
Diffstat (limited to 'pp_sys.c')
-rw-r--r-- | pp_sys.c | 8 |
1 files changed, 6 insertions, 2 deletions
@@ -2763,9 +2763,13 @@ PP(pp_getpeername) if (!IoIFP(io)) goto nuts; - sv = sv_2mortal(newSV(257)); - (void)SvPOK_only(sv); +#ifdef HAS_SOCKADDR_STORAGE + len = sizeof(struct sockaddr_storage); +#else len = 256; +#endif + sv = sv_2mortal(newSV(len+1)); + (void)SvPOK_only(sv); SvCUR_set(sv, len); *SvEND(sv) ='\0'; fd = PerlIO_fileno(IoIFP(io)); |