do memset for 'external' sockaddr structures

This commit is contained in:
z3APA3A 2016-01-31 15:01:17 +03:00
parent 852f1abecb
commit faf7f665c3
2 changed files with 4 additions and 2 deletions

View File

@ -271,9 +271,10 @@ static int h_external(int argc, unsigned char ** argv){
int res; int res;
#ifndef NOIPV6 #ifndef NOIPV6
struct sockaddr_in6 sa6; struct sockaddr_in6 sa6;
memset(&sa6, 0, sizeof(sa6));
res = getip46(46, argv[1], (struct sockaddr *)&sa6); res = getip46(46, argv[1], (struct sockaddr *)&sa6);
if(!res) return 1; if(!res) return 1;
memcpy((*SAFAMILY(&sa6)==AF_INET)?(void *)&conf.extsa:(void *)&conf.extsa6, &sa6, SASIZE(&sa6)); memcpy((*SAFAMILY(&sa6)==AF_INET)?(void *)&conf.extsa:(void *)&conf.extsa6, &sa6, sizeof(sa6));
#else #else
res = getip46(46, argv[1], (struct sockaddr *)&conf.extsa); res = getip46(46, argv[1], (struct sockaddr *)&conf.extsa);
if(!res) return 1; if(!res) return 1;

View File

@ -238,8 +238,9 @@ int MODULEMAINFUNC (int argc, char** argv){
{ {
#ifndef NOIPV6 #ifndef NOIPV6
struct sockaddr_in6 sa6; struct sockaddr_in6 sa6;
memset(&sa6, 0, sizeof(sa6));
error = !getip46(46, argv[i]+2, (struct sockaddr *)&sa6); error = !getip46(46, argv[i]+2, (struct sockaddr *)&sa6);
if(!error) memcpy((*SAFAMILY(&sa6)==AF_INET)?(void *)&srv.extsa:(void *)&srv.extsa6, &sa6, SASIZE(&sa6)); if(!error) memcpy((*SAFAMILY(&sa6)==AF_INET)?(void *)&srv.extsa:(void *)&srv.extsa6, &sa6, sizeof(sa6));
#else #else
error = !getip46(46, argv[i]+2, (struct sockaddr *)&srv.extsa); error = !getip46(46, argv[i]+2, (struct sockaddr *)&srv.extsa);
#endif #endif