On Fri, Aug 15, 2003 at 12:46:01PM +0400, Alexey Tourbin wrote: > On Fri, Aug 15, 2003 at 12:35:13PM +0400, Alexey Tourbin wrote: > > Ой. > > И в некоторых местах strdup не проверяется. > Первый же пример grep -C3 strdup **/*.c > > extensions/libip6t_ah.c- char *buffer; > extensions/libip6t_ah.c- char *cp; > extensions/libip6t_ah.c- > extensions/libip6t_ah.c: buffer = strdup(spistring); > extensions/libip6t_ah.c- if ((cp = strchr(buffer, ':')) == NULL) > extensions/libip6t_ah.c- spis[0] = spis[1] = parse_ah_spi(buffer,"spi"); > extensions/libip6t_ah.c- else { > > Специально напрашиваемся на взятие значения по нулевому адресу... Это в очередной раз доказывает тот факт, что административные утилиты (типа iptables) написаны так плохо и доверяют клиенту в такой мере, что их нельзя использовать с входными данными, не проверенными на 100%. -- ldv