aboutsummaryrefslogtreecommitdiff
path: root/src/lib/protocols
diff options
context:
space:
mode:
authorMichele Campus <fci1908@gmail.com>2017-10-03 16:08:14 +0200
committerGitHub <noreply@github.com>2017-10-03 16:08:14 +0200
commitcf26e8429eea819335c4b8116daebf4a30d92066 (patch)
tree669aa3f1d2171ba8296f69187fa8f0e163d3d05a /src/lib/protocols
parent094ddc204895adfc5122eb8c4e34965c97cf996a (diff)
parent25a4569e672ad47946be1bb8b836576b5ba47693 (diff)
Merge pull request #469 from vel21ripn/dev
Fix undefined behavior (detected by gcc):
Diffstat (limited to 'src/lib/protocols')
-rw-r--r--src/lib/protocols/http.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/lib/protocols/http.c b/src/lib/protocols/http.c
index 4ff65096b..6cc1033ba 100644
--- a/src/lib/protocols/http.c
+++ b/src/lib/protocols/http.c
@@ -360,9 +360,11 @@ static void check_content_type_and_change_protocol(struct ndpi_detection_module_
strncpy((char*)flow->host_server_name, (char*)packet->host_line.ptr, len);
flow->host_server_name[len] = '\0', flow->server_id = flow->dst;
- len = ndpi_min(packet->forwarded_line.len, sizeof(flow->protos.http.nat_ip)-1);
- strncpy((char*)flow->protos.http.nat_ip, (char*)packet->forwarded_line.ptr, len);
- flow->protos.http.nat_ip[len] = '\0';
+ if(packet->forwarded_line.ptr) {
+ len = ndpi_min(packet->forwarded_line.len, sizeof(flow->protos.http.nat_ip)-1);
+ strncpy((char*)flow->protos.http.nat_ip, (char*)packet->forwarded_line.ptr, len);
+ flow->protos.http.nat_ip[len] = '\0';
+ }
if(ndpi_struct->http_dont_dissect_response)
parseHttpSubprotocol(ndpi_struct, flow);