authmodfail.c
上传用户:s81996212
上传日期:2007-01-04
资源大小:722k
文件大小:1k
源码类别:

WEB邮件程序

开发平台:

C/C++

  1. /*
  2. ** Copyright 1998 - 1999 Double Precision, Inc.  See COPYING for
  3. ** distribution information.
  4. */
  5. #include "auth.h"
  6. #include "authmod.h"
  7. #include <stdio.h>
  8. #include <string.h>
  9. #include <stdlib.h>
  10. #include <signal.h>
  11. #if HAVE_UNISTD_H
  12. #include <unistd.h>
  13. #endif
  14. static const char rcsid[]="$Id: authmodfail.c,v 1.4 1999/12/20 03:10:53 mrsam Exp $";
  15. void authmod_fail_completely()
  16. {
  17. char **argv;
  18. int argc, n;
  19. const char *p=getenv("AUTHARGC");
  20. char buf[20];
  21. if (!p || sscanf(p, "%d", &argc) <= 0 || argc <= 0)
  22. {
  23. write(2, "AUTHFAILUREn", 12);
  24. authexit(1);
  25. }
  26. if ((argv=(char **)malloc((argc+1)*sizeof(char *))) == 0)
  27. {
  28. perror("malloc");
  29. authexit(1);
  30. }
  31. for (n=0; n<argc; n++)
  32. {
  33. sprintf(buf, "AUTHARGV%d", n);
  34. if ((argv[n]=getenv(buf)) == 0)
  35. authexit(1);
  36. }
  37. argv[n]=0;
  38. p=getenv("AUTHUSER");
  39. if (!p)
  40. authexit(1);
  41. execv(p, argv);
  42. perror(p);
  43. authexit(1);
  44. }