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.