main: fix an Out-of-bounds access
authorFerry Huberts <ferry.huberts@pelagic.nl>
Tue, 23 Oct 2012 11:52:10 +0000 (13:52 +0200)
committerFerry Huberts <ferry.huberts@pelagic.nl>
Tue, 23 Oct 2012 12:15:24 +0000 (14:15 +0200)
Coverity:
CID 739670 (#1 of 1): Out-of-bounds access (OVERRUN)
At (46): Overrunning struct type in_addr of 4 bytes by passing it to a
         function which accesses it at byte offset 15 using argument
         "16UL".

Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl>
src/main.c

index 6b792f6..ccee557 100644 (file)
@@ -1137,7 +1137,8 @@ static int olsr_process_arguments(int argc, char *argv[],
 
       ifa->cnf = get_default_if_config();
       ifa->host_emul = true;
-      memcpy(&ifa->hemu_ip, &in, sizeof(union olsr_ip_addr));
+      memset(&ifa->hemu_ip, 0, sizeof(ifa->hemu_ip));
+      memcpy(&ifa->hemu_ip, &in, sizeof(in));
       cnf->host_emul = true;
 
       continue;