mirror of
https://github.com/nmap/nmap.git
synced 2026-08-04 14:49:29 +00:00
Unify checks for source sock addr validity
This commit is contained in:
parent
b3948715c4
commit
4ddbb1de7f
2 changed files with 7 additions and 4 deletions
|
|
@ -150,7 +150,7 @@ int NmapOps::pf() {
|
|||
}
|
||||
|
||||
int NmapOps::SourceSockAddr(struct sockaddr_storage *ss, size_t *ss_len) {
|
||||
if (sourcesocklen <= 0)
|
||||
if (sourcesocklen <= 0 || sourcesock.ss_family == AF_UNSPEC)
|
||||
return 1;
|
||||
assert(sourcesocklen <= sizeof(*ss));
|
||||
if (ss)
|
||||
|
|
@ -162,7 +162,7 @@ int NmapOps::SourceSockAddr(struct sockaddr_storage *ss, size_t *ss_len) {
|
|||
|
||||
/* Returns a const pointer to the source address if set, or NULL if unset. */
|
||||
const struct sockaddr_storage *NmapOps::SourceSockAddr() const {
|
||||
if (sourcesock.ss_family == AF_UNSPEC)
|
||||
if (sourcesocklen <= 0 || sourcesock.ss_family == AF_UNSPEC)
|
||||
return NULL;
|
||||
else
|
||||
return &sourcesock;
|
||||
|
|
|
|||
|
|
@ -262,7 +262,7 @@ const struct in6_addr *Target::v6hostip() const {
|
|||
|
||||
/* The source address used to reach the target */
|
||||
int Target::SourceSockAddr(struct sockaddr_storage *ss, size_t *ss_len) const {
|
||||
if (sourcesocklen <= 0)
|
||||
if (sourcesocklen <= 0 || sourcesock.ss_family == AF_UNSPEC)
|
||||
return 1;
|
||||
assert(sourcesocklen <= sizeof(*ss));
|
||||
if (ss)
|
||||
|
|
@ -273,7 +273,10 @@ int Target::SourceSockAddr(struct sockaddr_storage *ss, size_t *ss_len) const {
|
|||
}
|
||||
|
||||
const struct sockaddr_storage *Target::SourceSockAddr() const {
|
||||
return &sourcesock;
|
||||
if (sourcesocklen <= 0 || sourcesock.ss_family == AF_UNSPEC)
|
||||
return NULL;
|
||||
else
|
||||
return &sourcesock;
|
||||
}
|
||||
|
||||
/* Note that it is OK to pass in a sockaddr_in or sockaddr_in6 casted
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue