diff -Naur olsrd-d551fcfa1daf/lib/dyn_gw/src/olsrd_dyn_gw.c olsrd-d551fcfa1daf-patch/lib/dyn_gw/src/olsrd_dyn_gw.c --- olsrd-d551fcfa1daf/lib/dyn_gw/src/olsrd_dyn_gw.c 2008-10-26 21:27:50.000000000 +0100 +++ olsrd-d551fcfa1daf-patch/lib/dyn_gw/src/olsrd_dyn_gw.c 2008-10-26 21:54:22.000000000 +0100 @@ -177,7 +177,7 @@ } //printf("GOT: %s(%08x)",inet_ntoa(foo_addr),foo_addr.s_addr); - if (inet_pton(olsr_cnf->ip_version, s_netaddr, &temp_netmask) <= 0) { + if (inet_pton(olsr_cnf->ip_version, s_mask, &temp_netmask) <= 0) { OLSR_PRINTF(0, "Illegal netmask \"%s\"", s_netaddr); return 1; } @@ -185,7 +185,7 @@ //printf("/%s(%08x)\n",inet_ntoa(foo_addr),foo_addr.s_addr); //printf("%s():got->%s/%s\n",__func__,olsr_ip_to_string((union olsr_ip_addr *)&)); the_hna_list = add_to_hna_list(the_hna_list, &temp_net, olsr_netmask_to_prefix(&temp_netmask)); - if (the_hna_list != NULL) { + if (the_hna_list == NULL) { return 1; } return 0;