mirror of
https://github.com/php/php-src.git
synced 2024-09-22 18:37:25 +00:00
Avoid use of memcpy(), reply on struct in_addr to be right sized instead
This commit is contained in:
parent
cc2dc6c85e
commit
c23305e184
@ -117,7 +117,7 @@ static char** ftp_genlist(ftpbuf_t *ftp, const char *cmd, const char *path TSRM
|
||||
|
||||
/* IP and port conversion box */
|
||||
union ipbox {
|
||||
unsigned long l[2];
|
||||
struct in_addr ia[2];
|
||||
unsigned short s[4];
|
||||
unsigned char c[8];
|
||||
};
|
||||
@ -775,8 +775,7 @@ ftp_pasv(ftpbuf_t *ftp, int pasv)
|
||||
}
|
||||
sin = (struct sockaddr_in *) sa;
|
||||
sin->sin_family = AF_INET;
|
||||
/* Deal with differing integer sizes */
|
||||
memcpy(&(sin->sin_addr.s_addr), &(ipbox.c[0]), 4);
|
||||
sin->sin_addr = ipbox.ia[0];
|
||||
sin->sin_port = ipbox.s[2];
|
||||
|
||||
ftp->pasv = 2;
|
||||
@ -1481,7 +1480,7 @@ ftp_getdata(ftpbuf_t *ftp TSRMLS_DC)
|
||||
#endif
|
||||
|
||||
/* send the PORT */
|
||||
memcpy(&(ipbox.c[0]), &(((struct sockaddr_in*) sa)->sin_addr.s_addr), 4);
|
||||
ipbox.ia[0] = ((struct sockaddr_in*) sa)->sin_addr;
|
||||
ipbox.s[2] = ((struct sockaddr_in*) &addr)->sin_port;
|
||||
sprintf(arg, "%u,%u,%u,%u,%u,%u", ipbox.c[0], ipbox.c[1], ipbox.c[2], ipbox.c[3], ipbox.c[4], ipbox.c[5]);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user