Azi sunt cam vorbaretz, dar nu cumva setuid(0) este putin cam pointless? Daca 
nu este suid-at iptables_mtrg, setuid intoarce EPERM , daca este suid-at, 
atunci nu mai e nevoie de setuid.???
/me care pleaca inainte sa vada ce flame-uri starneshte.
> > Mihai
> >
> > /****************************************/
> > #include <stdlib.h>
> > #include <unistd.h>
> >
> > int usage()
> > {
> >     printf(
> >         "iptables_mrtg ver. 0.99\n"
> >         "\n"
> >         "usage: iptables_mrtg <chain>\n"
> >     );
> >     return 1;
> > }
> >
> > int valid_char(const char ch)
> > {
> >     return isalnum(ch) || (ch =3D=3D '_');
> > }
> >
> > int check_chain(const char * chain)
> > {
> >     int isvalid =3D 1;
> >     const char * ptr;
> >     if(strlen(chain) > 16)
> >         isvalid =3D 0;
> >     else
> >         for(ptr =3D chain; ptr && *ptr; ptr++)
> >         if (!valid_char(*ptr))
> >         {
> >             isvalid =3D 0;
> >             break;
> >         }
> >     return isvalid;
> > }
> >
> > int doit(const char * chain)
> > {
> >     char buffer[1024];
> >     sprintf(buffer, "/sbin/iptables -t filter -L %s -n -v -x", chain);
> >     setuid(0);
> >     return system(buffer);
> > }
> >
> > int main(int argc, char **argv)
> > {
> >     if (argc !=3D 2)
> >         return usage();
> >     if(!check_chain(argv[1]))
> >     {
> >         printf("Invalid chain name\n");
> >         return 1;
> >
> >     }
> >     return doit(argv[1]);
> > }
>
> -----
> Ionut Spirlea,
> http://sgi.rdscv.ro/~ionuts/
>
>
> ---
> Send e-mail to '[EMAIL PROTECTED]' with 'unsubscribe rlug' to
> unsubscribe from this list.
---
Send e-mail to '[EMAIL PROTECTED]' with 'unsubscribe rlug' to 
unsubscribe from this list.

Raspunde prin e-mail lui