fprintf (stderr, "Can't parse numeric uid %s\n", optarg);
return (1);
}
- }else {
- int i,flag=0;
- char * temp ;
- temp = optarg;
- for(i=0;i<strlen(optarg);i++)
- {
- if(!isdigit(*temp))
- {
- flag=1;
- break;
- }
- else
- temp++;
- }
- if(flag)
+ } else {
+ struct passwd *pw = getpwnam (optarg);
+
+ if (pw == NULL)
{
- struct passwd *pw = getpwnam (optarg);
-
- if (pw == NULL)
- {
- fprintf (stderr, "Can't find user %s\n", optarg);
- return (1);
- }
- uid = pw->pw_uid;
-
+ fprintf (stderr, "Can't find user %s\n", optarg);
+ return (1);
}
- else
- uid=(uid_t)atol(optarg);
+ uid = pw->pw_uid;
}
break;