This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
c/6815: gcc fails to compile read_pwd.c from openssl-0.9.6d with -fprofile-arcs -O
- From: Darren Tucker <dtucker at platypus dot dodgy dot net dot au>
- To: gcc-gnats at gcc dot gnu dot org
- Date: Sun, 26 May 2002 21:08:03 +1000 (EST)
- Subject: c/6815: gcc fails to compile read_pwd.c from openssl-0.9.6d with -fprofile-arcs -O
- Reply-to: dtucker at zip dot com dot au
>Number: 6815
>Category: c
>Synopsis: gcc fails to compile read_pwd.c from openssl-0.9.6d with -fprofile-arcs -O
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: unassigned
>State: open
>Class: ice-on-legal-code
>Submitter-Id: net
>Arrival-Date: Sun May 26 04:16:01 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator: Darren Tucker
>Release: 3.1
>Organization:
>Environment:
System: SunOS platypus 5.8 Generic_108528-13 sun4m sparc SUNW,SPARCstation-5
Architecture: sun4m
host: sparc-sun-solaris2.8
build: sparc-sun-solaris2.8
target: sparc-sun-solaris2.8
configured with: ../gcc-3.1/configure --with-as=/usr/local/bin/as --with-gnu-as --with-ld=/usr/local/bin/ld --with-gnu-ld --enable-threads=solaris --disable-multilib : (reconfigured) ../gcc-3.1/configure --with-as=/usr/local/bin/as --with-gnu-as --with-ld=/usr/local/bin/ld --with-gnu-ld --disable-multilib
>Description:
$ gcc -v -save-temps -fprofile-arcs -O -I.. -I../.. -I../../include -DTHREADS -c -o read_pwd.o read_pwd.c
Reading specs from /usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1/specs
Configured with: ../gcc-3.1/configure --with-as=/usr/local/bin/as --with-gnu-as --with-ld=/usr/local/bin/ld --with-gnu-ld --enable-threads=solaris --disable-multilib : (reconfigured) ../gcc-3.1/configure --with-as=/usr/local/bin/as --with-gnu-as --with-ld=/usr/local/bin/ld --with-gnu-ld --disable-multilib
Thread model: posix
gcc version 3.1
/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1/cpp0 -lang-c -v -I.. -I../.. -I../../include -D__GNUC__=3 -D__GNUC_MINOR__=1 -D__GNUC_PATCHLEVEL__=0 -Dsparc -Dsun -Dunix -D__svr4__ -D__SVR4 -D__PRAGMA_REDEFINE_EXTNAME -D__sparc__ -D__sun__ -D__unix__ -D__svr4__ -D__SVR4 -D__PRAGMA_REDEFINE_EXTNAME -D__sparc -D__sun -D__unix -Asystem=unix -Asystem=svr4 -D__OPTIMIZE__ -D__STDC_HOSTED__=1 -D__SIZE_TYPE__=unsigned int -D__PTRDIFF_TYPE__=int -D__WCHAR_TYPE__=long int -D__WINT_TYPE__=long int -D__GCC_NEW_VARARGS__ -Acpu=sparc -Amachine=sparc -DTHREADS read_pwd.c read_pwd.i
GNU CPP version 3.1 (cpplib) (sparc ELF)
ignoring nonexistent directory "NONE/include"
#include "..." search starts here:
#include <...> search starts here:
..
../..
../../include
/usr/local/include
/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1/include
/usr/local/sparc-sun-solaris2.8/include
/usr/include
End of search list.
/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1/cc1 -fpreprocessed read_pwd.i -quiet -dumpbase read_pwd.c -O -version -fprofile-arcs -o read_pwd.s
GNU CPP version 3.1 (cpplib) (sparc ELF)
GNU C version 3.1 (sparc-sun-solaris2.8)
compiled by GNU C version 3.0.4.
read_pwd.c: In function `recsig':
read_pwd.c:467: internal error: Segmentation Fault
I've also seen this on a sun4u (on which gcc wasn't reconfigured).
I'll do a clean rebuild of gcc but on a SparcStation5 it'll take a while...
>How-To-Repeat:
# 1 "read_pwd.c"
# 1 "<built-in>"
# 1 "<command line>"
# 1 "read_pwd.c"
# 60 "read_pwd.c"
# 1 "../../include/openssl/opensslconf.h" 1
# 61 "read_pwd.c" 2
# 1 "/usr/include/unistd.h" 1 3 4
# 16 "/usr/include/unistd.h" 3 4
#pragma ident "@(#)unistd.h 1.58 99/11/11 SMI"
# 1 "/usr/include/sys/feature_tests.h" 1 3 4
# 13 "/usr/include/sys/feature_tests.h" 3 4
#pragma ident "@(#)feature_tests.h 1.18 99/07/26 SMI"
# 1 "/usr/include/sys/isa_defs.h" 1 3 4
# 9 "/usr/include/sys/isa_defs.h" 3 4
#pragma ident "@(#)isa_defs.h 1.20 99/05/04 SMI"
# 16 "/usr/include/sys/feature_tests.h" 2 3 4
# 19 "/usr/include/unistd.h" 2 3 4
# 1 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1/include/sys/types.h" 1 3 4
# 25 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1/include/sys/types.h" 3 4
#pragma ident "@(#)types.h 1.67 01/07/07 SMI"
# 1 "/usr/include/sys/machtypes.h" 1 3 4
# 16 "/usr/include/sys/machtypes.h" 3 4
#pragma ident "@(#)machtypes.h 1.13 99/05/04 SMI"
# 33 "/usr/include/sys/machtypes.h" 3 4
typedef struct _label_t { long val[2]; } label_t;
typedef unsigned char lock_t;
# 34 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1/include/sys/types.h" 2 3 4
# 45 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1/include/sys/types.h" 3 4
# 1 "/usr/include/sys/int_types.h" 1 3 4
# 9 "/usr/include/sys/int_types.h" 3 4
#pragma ident "@(#)int_types.h 1.6 97/08/20 SMI"
# 62 "/usr/include/sys/int_types.h" 3 4
typedef char int8_t;
typedef short int16_t;
typedef int int32_t;
typedef long long int64_t;
typedef unsigned char uint8_t;
typedef unsigned short uint16_t;
typedef unsigned int uint32_t;
typedef unsigned long long uint64_t;
# 94 "/usr/include/sys/int_types.h" 3 4
typedef int64_t intmax_t;
typedef uint64_t uintmax_t;
# 110 "/usr/include/sys/int_types.h" 3 4
typedef int intptr_t;
typedef unsigned int uintptr_t;
typedef char int_least8_t;
typedef short int_least16_t;
typedef int int_least32_t;
typedef long long int_least64_t;
typedef unsigned char uint_least8_t;
typedef unsigned short uint_least16_t;
typedef unsigned int uint_least32_t;
typedef unsigned long long uint_least64_t;
# 46 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1/include/sys/types.h" 2 3 4
# 62 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1/include/sys/types.h" 3 4
typedef long long longlong_t;
typedef unsigned long long u_longlong_t;
# 85 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1/include/sys/types.h" 3 4
typedef long t_scalar_t;
typedef unsigned long t_uscalar_t;
typedef unsigned char uchar_t;
typedef unsigned short ushort_t;
typedef unsigned int uint_t;
typedef unsigned long ulong_t;
typedef char *caddr_t;
typedef long daddr_t;
typedef short cnt_t;
typedef ulong_t paddr_t;
# 118 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1/include/sys/types.h" 3 4
typedef int ptrdiff_t;
# 127 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1/include/sys/types.h" 3 4
typedef ulong_t pfn_t;
typedef ulong_t pgcnt_t;
typedef long spgcnt_t;
typedef uchar_t use_t;
typedef short sysid_t;
typedef short index_t;
typedef void *timeout_id_t;
typedef void *bufcall_id_t;
# 149 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1/include/sys/types.h" 3 4
typedef long off_t;
# 158 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1/include/sys/types.h" 3 4
typedef longlong_t off64_t;
typedef ulong_t ino_t;
typedef long blkcnt_t;
typedef ulong_t fsblkcnt_t;
typedef ulong_t fsfilcnt_t;
# 183 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1/include/sys/types.h" 3 4
typedef u_longlong_t ino64_t;
typedef longlong_t blkcnt64_t;
typedef u_longlong_t fsblkcnt64_t;
typedef u_longlong_t fsfilcnt64_t;
typedef long blksize_t;
typedef enum { B_FALSE, B_TRUE } boolean_t;
# 210 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1/include/sys/types.h" 3 4
typedef int64_t pad64_t;
typedef uint64_t upad64_t;
# 223 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1/include/sys/types.h" 3 4
typedef longlong_t offset_t;
typedef u_longlong_t u_offset_t;
typedef u_longlong_t len_t;
typedef longlong_t diskaddr_t;
# 244 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1/include/sys/types.h" 3 4
typedef union {
offset_t _f;
struct {
int32_t _u;
int32_t _l;
} _p;
} lloff_t;
# 264 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1/include/sys/types.h" 3 4
typedef union {
diskaddr_t _f;
struct {
int32_t _u;
int32_t _l;
} _p;
} lldaddr_t;
typedef uint_t k_fltset_t;
# 287 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1/include/sys/types.h" 3 4
typedef long id_t;
typedef uint_t useconds_t;
typedef long suseconds_t;
# 308 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1/include/sys/types.h" 3 4
typedef ulong_t major_t;
typedef ulong_t minor_t;
typedef short pri_t;
# 328 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1/include/sys/types.h" 3 4
typedef ushort_t o_mode_t;
typedef short o_dev_t;
typedef ushort_t o_uid_t;
typedef o_uid_t o_gid_t;
typedef short o_nlink_t;
typedef short o_pid_t;
typedef ushort_t o_ino_t;
typedef int key_t;
typedef ulong_t mode_t;
typedef long uid_t;
typedef uid_t gid_t;
typedef id_t taskid_t;
typedef id_t projid_t;
typedef uint_t pthread_t;
typedef uint_t pthread_key_t;
typedef struct _pthread_mutex {
struct {
uint16_t __pthread_mutex_flag1;
uint8_t __pthread_mutex_flag2;
uint8_t __pthread_mutex_ceiling;
uint16_t __pthread_mutex_type;
uint16_t __pthread_mutex_magic;
} __pthread_mutex_flags;
union {
struct {
uint8_t __pthread_mutex_pad[8];
} __pthread_mutex_lock64;
struct {
uint32_t __pthread_ownerpid;
uint32_t __pthread_lockword;
} __pthread_mutex_lock32;
upad64_t __pthread_mutex_owner64;
} __pthread_mutex_lock;
upad64_t __pthread_mutex_data;
} pthread_mutex_t;
typedef struct _pthread_cond {
struct {
uint8_t __pthread_cond_flag[4];
uint16_t __pthread_cond_type;
uint16_t __pthread_cond_magic;
} __pthread_cond_flags;
upad64_t __pthread_cond_data;
} pthread_cond_t;
typedef struct _pthread_rwlock {
int32_t __pthread_rwlock_readers;
uint16_t __pthread_rwlock_type;
uint16_t __pthread_rwlock_magic;
upad64_t __pthread_rwlock_pad1[3];
upad64_t __pthread_rwlock_pad2[2];
upad64_t __pthread_rwlock_pad3[2];
} pthread_rwlock_t;
typedef struct {
void *__pthread_attrp;
} pthread_attr_t;
typedef struct {
void *__pthread_mutexattrp;
} pthread_mutexattr_t;
typedef struct {
void *__pthread_condattrp;
} pthread_condattr_t;
typedef struct {
upad64_t __pthread_once_pad[4];
} pthread_once_t;
typedef struct {
void *__pthread_rwlockattrp;
} pthread_rwlockattr_t;
typedef ulong_t dev_t;
typedef ulong_t nlink_t;
typedef long pid_t;
# 468 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1/include/sys/types.h" 3 4
typedef unsigned int size_t;
# 479 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1/include/sys/types.h" 3 4
typedef int ssize_t;
typedef long time_t;
typedef long clock_t;
typedef int clockid_t;
typedef int timer_t;
typedef unsigned char unchar;
typedef unsigned short ushort;
typedef unsigned int uint;
typedef unsigned long ulong;
# 561 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1/include/sys/types.h" 3 4
typedef unsigned char u_char;
typedef unsigned short u_short;
typedef unsigned int u_int;
typedef unsigned long u_long;
typedef struct _quad { int val[2]; } quad_t;
typedef quad_t quad;
# 1 "/usr/include/sys/select.h" 1 3 4
# 12 "/usr/include/sys/select.h" 3 4
#pragma ident "@(#)select.h 1.16 98/04/27 SMI"
# 1 "/usr/include/sys/time.h" 1 3 4
# 22 "/usr/include/sys/time.h" 3 4
#pragma ident "@(#)time.h 2.66 01/01/17 SMI"
# 49 "/usr/include/sys/time.h" 3 4
struct timeval {
time_t tv_sec;
suseconds_t tv_usec;
};
# 82 "/usr/include/sys/time.h" 3 4
struct timezone {
int tz_minuteswest;
int tz_dsttime;
};
# 100 "/usr/include/sys/time.h" 3 4
# 1 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1/include/sys/types.h" 1 3 4
# 101 "/usr/include/sys/time.h" 2 3 4
# 155 "/usr/include/sys/time.h" 3 4
struct itimerval {
struct timeval it_interval;
struct timeval it_value;
};
# 203 "/usr/include/sys/time.h" 3 4
typedef longlong_t hrtime_t;
# 320 "/usr/include/sys/time.h" 3 4
int adjtime(struct timeval *, struct timeval *);
# 331 "/usr/include/sys/time.h" 3 4
int getitimer(int, struct itimerval *);
int utimes(const char *, const struct timeval *);
int setitimer(int, struct itimerval *, struct itimerval *);
# 369 "/usr/include/sys/time.h" 3 4
int settimeofday(struct timeval *, void *);
hrtime_t gethrtime(void);
hrtime_t gethrvtime(void);
# 389 "/usr/include/sys/time.h" 3 4
int gettimeofday(struct timeval *, void *);
# 410 "/usr/include/sys/time.h" 3 4
# 1 "/usr/include/time.h" 1 3 4
# 16 "/usr/include/time.h" 3 4
#pragma ident "@(#)time.h 1.39 99/08/10 SMI"
# 1 "/usr/include/iso/time_iso.h" 1 3 4
# 28 "/usr/include/iso/time_iso.h" 3 4
#pragma ident "@(#)time_iso.h 1.1 99/08/09 SMI"
# 69 "/usr/include/iso/time_iso.h" 3 4
struct tm {
int tm_sec;
int tm_min;
int tm_hour;
int tm_mday;
int tm_mon;
int tm_year;
int tm_wday;
int tm_yday;
int tm_isdst;
};
extern char *asctime(const struct tm *);
extern clock_t clock(void);
extern char *ctime(const time_t *);
extern double difftime(time_t, time_t);
extern struct tm *gmtime(const time_t *);
extern struct tm *localtime(const time_t *);
extern time_t mktime(struct tm *);
extern time_t time(time_t *);
extern size_t strftime(char *, size_t, const char *, const struct tm *);
# 21 "/usr/include/time.h" 2 3 4
# 67 "/usr/include/time.h" 3 4
extern char *strptime(const char *, const char *, struct tm *);
# 83 "/usr/include/time.h" 3 4
# 1 "/usr/include/sys/time_impl.h" 1 3 4
# 15 "/usr/include/sys/time_impl.h" 3 4
#pragma ident "@(#)time_impl.h 1.5 99/10/05 SMI"
# 36 "/usr/include/sys/time_impl.h" 3 4
typedef struct timespec {
time_t tv_sec;
long tv_nsec;
} timespec_t;
# 60 "/usr/include/sys/time_impl.h" 3 4
typedef struct timespec timestruc_t;
# 79 "/usr/include/sys/time_impl.h" 3 4
typedef struct itimerspec {
struct timespec it_interval;
struct timespec it_value;
} itimerspec_t;
# 84 "/usr/include/time.h" 2 3 4
# 98 "/usr/include/time.h" 3 4
union sigval {
int sival_int;
void *sival_ptr;
};
struct sigevent {
int sigev_notify;
int sigev_signo;
union sigval sigev_value;
void (*sigev_notify_function)(union sigval);
pthread_attr_t *sigev_notify_attributes;
int __sigev_pad2;
};
extern int clock_getres(clockid_t, struct timespec *);
extern int clock_gettime(clockid_t, struct timespec *);
extern int clock_settime(clockid_t, const struct timespec *);
extern int timer_create(clockid_t, struct sigevent *, timer_t *);
extern int timer_delete(timer_t);
extern int timer_getoverrun(timer_t);
extern int timer_gettime(timer_t, struct itimerspec *);
extern int timer_settime(timer_t, int, const struct itimerspec *,
struct itimerspec *);
extern int nanosleep(const struct timespec *, struct timespec *);
extern void tzset(void);
extern char *tzname[2];
extern long _sysconf(int);
extern long timezone;
extern int daylight;
extern int cftime(char *, char *, const time_t *);
extern int ascftime(char *, const char *, const struct tm *);
extern long altzone;
extern struct tm *getdate(const char *);
extern int getdate_err;
# 411 "/usr/include/sys/time.h" 2 3 4
# 423 "/usr/include/sys/time.h" 3 4
# 1 "/usr/include/sys/select.h" 1 3 4
# 424 "/usr/include/sys/time.h" 2 3 4
# 18 "/usr/include/sys/select.h" 2 3 4
# 45 "/usr/include/sys/select.h" 3 4
typedef long fd_mask;
typedef long fds_mask;
# 73 "/usr/include/sys/select.h" 3 4
typedef struct fd_set {
long fds_bits[(((1024)+(((sizeof (fds_mask) * 8))-1))/((sizeof (fds_mask) * 8)))];
} fd_set;
# 97 "/usr/include/sys/select.h" 3 4
extern int select(int, fd_set *, fd_set *, fd_set *, struct timeval *);
# 574 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1/include/sys/types.h" 2 3 4
# 21 "/usr/include/unistd.h" 2 3 4
# 1 "/usr/include/sys/unistd.h" 1 3 4
# 25 "/usr/include/sys/unistd.h" 3 4
#pragma ident "@(#)unistd.h 1.37 98/10/28 SMI"
# 22 "/usr/include/unistd.h" 2 3 4
# 171 "/usr/include/unistd.h" 3 4
extern int access(const char *, int);
extern int acct(const char *);
extern unsigned alarm(unsigned);
extern int brk(void *);
extern int chdir(const char *);
extern int chown(const char *, uid_t, gid_t);
extern int chroot(const char *);
extern int close(int);
extern char *ctermid(char *);
extern char *cuserid(char *);
extern int dup(int);
extern int dup2(int, int);
extern int execl(const char *, const char *, ...);
extern int execle(const char *, const char *, ...);
extern int execlp(const char *, const char *, ...);
extern int execv(const char *, char *const *);
extern int execve(const char *, char *const *, char *const *);
extern int execvp(const char *, char *const *);
extern void _exit(int);
extern int fattach(int, const char *);
extern int fchdir(int);
extern int fchown(int, uid_t, gid_t);
extern int fchroot(int);
extern int fdatasync(int);
# 243 "/usr/include/unistd.h" 3 4
extern int fdetach(const char *);
extern pid_t fork(void);
extern pid_t fork1(void);
extern long fpathconf(int, int);
extern int fsync(int);
extern int ftruncate(int, off_t);
extern char *getcwd(char *, size_t);
extern int getdtablesize(void);
extern gid_t getegid(void);
extern uid_t geteuid(void);
extern gid_t getgid(void);
extern int getgroups(int, gid_t *);
extern long gethostid(void);
extern int gethostname(char *, int);
extern char *getlogin(void);
# 289 "/usr/include/unistd.h" 3 4
extern int getpagesize(void);
extern pid_t getpgid(pid_t);
extern pid_t getpid(void);
extern pid_t getppid(void);
extern pid_t getpgrp(void);
char *gettxt(const char *, const char *);
extern pid_t getsid(pid_t);
extern uid_t getuid(void);
extern char *getwd(char *);
# 315 "/usr/include/unistd.h" 3 4
extern int ioctl(int, int, ...);
extern int isaexec(const char *, char *const *, char *const *);
extern int isatty(int);
extern int link(const char *, const char *);
extern int lchown(const char *, uid_t, gid_t);
extern int lockf(int, int, off_t);
extern int readlink(const char *, char *, size_t);
extern off_t lseek(int, off_t, int);
extern int nice(int);
extern long pathconf(const char *, int);
extern int pause(void);
extern int pipe(int *);
extern offset_t llseek(int, offset_t, int);
extern off_t tell(int);
extern int mincore(caddr_t, size_t, char *);
extern ssize_t pread(int, void *, size_t, off_t);
extern void profil(unsigned short *, size_t, unsigned long, unsigned int);
extern int pthread_atfork(void (*) (void), void (*) (void), void (*) (void));
extern long ptrace(int, pid_t, long, long);
extern ssize_t pwrite(int, const void *, size_t, off_t);
extern ssize_t read(int, void *, size_t);
extern int rename(const char *, const char *);
extern int resolvepath(const char *, char *, size_t);
extern int rmdir(const char *);
extern void *sbrk(intptr_t);
extern int setgid(gid_t);
extern int setegid(gid_t);
extern int setgroups(int, const gid_t *);
extern int setpgid(pid_t, pid_t);
extern pid_t setpgrp(void);
extern int setregid(gid_t, gid_t);
extern int setreuid(uid_t, uid_t);
extern pid_t setsid(void);
extern int setuid(uid_t);
extern int seteuid(uid_t);
extern unsigned sleep(unsigned);
extern int stime(const time_t *);
extern int symlink(const char *, const char *);
extern void sync(void);
extern long sysconf(int);
# 438 "/usr/include/unistd.h" 3 4
extern pid_t tcgetpgrp(int);
extern int tcsetpgrp(int, pid_t);
extern off_t tell(int);
extern int truncate(const char *, off_t);
extern char *ttyname(int);
extern useconds_t ualarm(useconds_t, useconds_t);
extern int unlink(const char *);
extern int usleep(useconds_t);
extern pid_t vfork(void);
extern void vhangup(void);
extern ssize_t write(int, const void *, size_t);
extern void yield(void);
extern int ftruncate64(int, off64_t);
extern off64_t lseek64(int, off64_t, int);
extern ssize_t pread64(int, void *, size_t, off64_t);
extern ssize_t pwrite64(int, const void *, size_t, off64_t);
extern off64_t tell64(int);
extern int truncate64(const char *, off64_t);
extern int lockf64(int, int, off64_t);
# 782 "/usr/include/unistd.h" 3 4
#pragma unknown_control_flow(vfork)
# 63 "read_pwd.c" 2
# 87 "read_pwd.c"
# 1 "des_locl.h" 1
# 68 "des_locl.h"
# 1 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1/include/stdio.h" 1 3 4
# 14 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1/include/stdio.h" 3 4
# 1 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1/include/stdarg.h" 1 3 4
# 43 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1/include/stdarg.h" 3 4
typedef __builtin_va_list __gnuc_va_list;
# 15 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1/include/stdio.h" 2 3 4
# 34 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1/include/stdio.h" 3 4
#pragma ident "@(#)stdio.h 1.78 99/12/08 SMI"
# 1 "/usr/include/iso/stdio_iso.h" 1 3 4
# 32 "/usr/include/iso/stdio_iso.h" 3 4
#pragma ident "@(#)stdio_iso.h 1.2 99/10/25 SMI"
# 1 "/usr/include/sys/va_list.h" 1 3 4
# 9 "/usr/include/sys/va_list.h" 3 4
#pragma ident "@(#)va_list.h 1.12 99/05/04 SMI"
# 26 "/usr/include/sys/va_list.h" 3 4
typedef void *__va_list;
# 37 "/usr/include/iso/stdio_iso.h" 2 3 4
# 1 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1/include/stdio_tag.h" 1 3 4
# 18 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1/include/stdio_tag.h" 3 4
#pragma ident "@(#)stdio_tag.h 1.3 98/04/20 SMI"
# 30 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1/include/stdio_tag.h" 3 4
typedef struct __FILE __FILE;
# 38 "/usr/include/iso/stdio_iso.h" 2 3 4
# 1 "/usr/include/stdio_impl.h" 1 3 4
# 9 "/usr/include/stdio_impl.h" 3 4
#pragma ident "@(#)stdio_impl.h 1.8 99/06/10 SMI"
# 38 "/usr/include/stdio_impl.h" 3 4
struct __FILE
{
ssize_t _cnt;
unsigned char *_ptr;
unsigned char *_base;
unsigned char _flag;
unsigned char _file;
unsigned __orientation:2;
unsigned __ionolock:1;
unsigned __filler:5;
};
# 39 "/usr/include/iso/stdio_iso.h" 2 3 4
# 59 "/usr/include/iso/stdio_iso.h" 3 4
typedef long long __longlong_t;
# 75 "/usr/include/iso/stdio_iso.h" 3 4
typedef __FILE FILE;
# 88 "/usr/include/iso/stdio_iso.h" 3 4
typedef long fpos_t;
# 147 "/usr/include/iso/stdio_iso.h" 3 4
extern __FILE __iob[20];
# 164 "/usr/include/iso/stdio_iso.h" 3 4
extern int remove(const char *);
extern int rename(const char *, const char *);
extern FILE *tmpfile(void);
extern char *tmpnam(char *);
extern int fclose(FILE *);
extern int fflush(FILE *);
extern FILE *fopen(const char *, const char *);
extern FILE *freopen(const char *, const char *, FILE *);
extern void setbuf(FILE *, char *);
extern int setvbuf(FILE *, char *, int, size_t);
extern int fprintf(FILE *, const char *, ...);
extern int fscanf(FILE *, const char *, ...);
extern int printf(const char *, ...);
extern int scanf(const char *, ...);
extern int sprintf(char *, const char *, ...);
extern int sscanf(const char *, const char *, ...);
extern int vfprintf(FILE *, const char *, __va_list);
extern int vprintf(const char *, __va_list);
extern int vsprintf(char *, const char *, __va_list);
extern int fgetc(FILE *);
extern char *fgets(char *, int, FILE *);
extern int fputc(int, FILE *);
extern int fputs(const char *, FILE *);
extern int getc(FILE *);
extern int putc(int, FILE *);
extern int getchar(void);
extern int putchar(int);
extern char *gets(char *);
extern int puts(const char *);
extern int ungetc(int, FILE *);
extern size_t fread(void *, size_t, size_t, FILE *);
extern size_t fwrite(const void *, size_t, size_t, FILE *);
extern int fgetpos(FILE *, fpos_t *);
extern int fseek(FILE *, long, int);
extern int fsetpos(FILE *, const fpos_t *);
extern long ftell(FILE *);
extern void rewind(FILE *);
extern void clearerr(FILE *);
extern int feof(FILE *);
extern int ferror(FILE *);
extern void perror(const char *);
extern int __filbuf(FILE *);
extern int __flsbuf(int, FILE *);
# 37 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1/include/stdio.h" 2 3 4
# 123 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1/include/stdio.h" 3 4
typedef __longlong_t fpos64_t;
# 151 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1/include/stdio.h" 3 4
extern unsigned char _sibuf[], _sobuf[];
# 193 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1/include/stdio.h" 3 4
extern unsigned char *_bufendtab[];
extern FILE *_lastbuf;
# 229 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1/include/stdio.h" 3 4
extern void setbuffer(FILE *, char *, size_t);
extern int setlinebuf(FILE *);
extern int snprintf(char *, size_t, const char *, ...);
extern int vsnprintf(char *, size_t, const char *, __gnuc_va_list);
# 250 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1/include/stdio.h" 3 4
extern FILE *fdopen(int, const char *);
extern char *ctermid(char *);
extern int fileno(FILE *);
# 276 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1/include/stdio.h" 3 4
extern FILE *popen(const char *, const char *);
extern char *cuserid(char *);
extern char *tempnam(const char *, const char *);
extern int getopt(int, char *const *, const char *);
extern int getsubopt(char **, char *const *, char **);
extern char *optarg;
extern int optind, opterr, optopt;
extern int getw(FILE *);
extern int putw(int, FILE *);
extern int pclose(FILE *);
extern int fseeko(FILE *, off_t, int);
extern off_t ftello(FILE *);
# 305 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1/include/stdio.h" 3 4
extern FILE *fopen64(const char *, const char *);
extern FILE *freopen64(const char *, const char *, FILE *);
extern FILE *tmpfile64(void);
extern int fgetpos64(FILE *, fpos64_t *);
extern int fsetpos64(FILE *, const fpos64_t *);
extern int fseeko64(FILE *, off64_t, int);
extern off64_t ftello64(FILE *);
# 69 "des_locl.h" 2
# 1 "/usr/include/stdlib.h" 1 3 4
# 16 "/usr/include/stdlib.h" 3 4
#pragma ident "@(#)stdlib.h 1.47 99/11/03 SMI"
# 1 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1/include/iso/stdlib_iso.h" 1 3 4
# 37 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1/include/iso/stdlib_iso.h" 3 4
#pragma ident "@(#)stdlib_iso.h 1.2 99/12/21 SMI"
# 46 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1/include/iso/stdlib_iso.h" 3 4
extern unsigned char __ctype[];
# 57 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1/include/iso/stdlib_iso.h" 3 4
typedef struct {
int quot;
int rem;
} div_t;
typedef struct {
long quot;
long rem;
} ldiv_t;
# 96 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1/include/iso/stdlib_iso.h" 3 4
typedef long wchar_t;
extern void abort(void);
extern int abs(int);
extern int atexit(void (*)(void));
extern double atof(const char *);
extern int atoi(const char *);
extern long int atol(const char *);
extern void *bsearch(const void *, const void *, size_t, size_t,
int (*)(const void *, const void *));
extern void *calloc(size_t, size_t);
extern div_t div(int, int);
extern void exit(int);
extern void free(void *);
extern char *getenv(const char *);
extern long int labs(long);
extern ldiv_t ldiv(long, long);
extern void *malloc(size_t);
extern int mblen(const char *, size_t);
extern size_t mbstowcs(wchar_t *, const char *, size_t);
extern int mbtowc(wchar_t *, const char *, size_t);
extern void qsort(void *, size_t, size_t,
int (*)(const void *, const void *));
extern int rand(void);
extern void *realloc(void *, size_t);
extern void srand(unsigned int);
extern double strtod(const char *, char **);
extern long int strtol(const char *, char **, int);
extern unsigned long int strtoul(const char *, char **, int);
extern int system(const char *);
extern int wctomb(char *, wchar_t);
extern size_t wcstombs(char *, const wchar_t *, size_t);
# 19 "/usr/include/stdlib.h" 2 3 4
# 68 "/usr/include/stdlib.h" 3 4
typedef struct {
long long quot;
long long rem;
} lldiv_t;
# 112 "/usr/include/stdlib.h" 3 4
extern void _exithandle(void);
extern double drand48(void);
extern double erand48(unsigned short *);
extern long jrand48(unsigned short *);
extern void lcong48(unsigned short *);
extern long lrand48(void);
extern long mrand48(void);
extern long nrand48(unsigned short *);
extern unsigned short *seed48(unsigned short *);
extern void srand48(long);
extern int putenv(char *);
extern void setkey(const char *);
# 144 "/usr/include/stdlib.h" 3 4
extern void swab(const char *, char *, ssize_t);
extern int mkstemp(char *);
extern int mkstemp64(char *);
extern long a64l(const char *);
extern char *ecvt(double, int, int *, int *);
extern char *fcvt(double, int, int *, int *);
extern char *gcvt(double, int, char *);
extern int getsubopt(char **, char *const *, char **);
extern int grantpt(int);
extern char *initstate(unsigned, char *, size_t);
extern char *l64a(long);
extern char *mktemp(char *);
extern char *ptsname(int);
extern long random(void);
extern char *realpath(const char *, char *);
extern char *setstate(const char *);
extern void srandom(unsigned);
extern int ttyslot(void);
extern int unlockpt(int);
extern void *valloc(size_t);
extern int dup2(int, int);
extern char *qecvt(long double, int, int *, int *);
extern char *qfcvt(long double, int, int *, int *);
extern char *qgcvt(long double, int, char *);
extern char *getcwd(char *, size_t);
extern const char *getexecname(void);
extern char *getlogin(void);
extern int getopt(int, char *const *, const char *);
extern char *optarg;
extern int optind, opterr, optopt;
extern char *getpass(const char *);
extern char *getpassphrase(const char *);
extern int getpw(uid_t, char *);
extern int isatty(int);
extern void *memalign(size_t, size_t);
extern char *ttyname(int);
extern long long atoll(const char *);
extern long long llabs(long long);
extern lldiv_t lldiv(long long, long long);
extern char *lltostr(long long, char *);
extern long long strtoll(const char *, char **, int);
extern unsigned long long strtoull(const char *, char **, int);
extern char *ulltostr(unsigned long long, char *);
# 70 "des_locl.h" 2
# 1 "../../include/openssl/opensslconf.h" 1
# 72 "des_locl.h" 2
# 80 "des_locl.h"
# 1 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1/include/math.h" 1 3 4
# 23 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1/include/math.h" 3 4
#pragma ident "@(#)math.h 2.10 99/07/29 SMI"
# 1 "/usr/include/iso/math_iso.h" 1 3 4
#pragma ident "@(#)math_iso.h 1.1 99/07/30 SMI"
# 20 "/usr/include/iso/math_iso.h" 3 4
typedef union _h_val {
unsigned long _i[sizeof(double) / sizeof(unsigned long)];
double _d;
} _h_val;
extern const _h_val __huge_val;
# 37 "/usr/include/iso/math_iso.h" 3 4
extern double acos (double);
extern double asin (double);
extern double atan (double);
extern double atan2 (double, double);
extern double cos (double);
extern double sin (double);
extern double tan (double);
extern double cosh (double);
extern double sinh (double);
extern double tanh (double);
extern double exp (double);
extern double frexp (double, int *);
extern double ldexp (double, int);
extern double log (double);
extern double log10 (double);
extern double modf (double, double *);
extern double pow (double, double);
extern double sqrt (double);
extern double ceil (double);
extern double fabs (double);
extern double floor (double);
extern double fmod (double, double);
# 26 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1/include/math.h" 2 3 4
# 89 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1/include/math.h" 3 4
extern int signgam;
enum version {libm_ieee = -1, c_issue_4, ansi_1, strict_ansi};
extern const enum version _lib_version;
struct exception {
int type;
char *name;
double arg1;
double arg2;
double retval;
};
# 145 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1/include/math.h" 3 4
extern double erf (double);
extern double erfc (double);
extern double gamma (double);
extern double hypot (double, double);
extern int isnan (double);
extern double j0 (double);
extern double j1 (double);
extern double jn (int, double);
extern double lgamma (double);
extern double y0 (double);
extern double y1 (double);
extern double yn (int, double);
# 172 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1/include/math.h" 3 4
extern double acosh (double);
extern double asinh (double);
extern double atanh (double);
extern double cbrt (double);
extern double logb (double);
extern double nextafter (double, double);
extern double remainder (double, double);
extern double scalb (double, double);
# 192 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1/include/math.h" 3 4
extern double expm1 (double);
extern int ilogb (double);
extern double log1p (double);
extern double rint (double);
# 208 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1/include/math.h" 3 4
extern int matherr (struct exception *);
extern double significand (double);
extern double copysign (double, double);
extern double scalbn (double, int);
# 243 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1/include/math.h" 3 4
extern float modff (float, float *);
# 1 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1/include/floatingpoint.h" 1 3 4
# 20 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1/include/floatingpoint.h" 3 4
#pragma ident "@(#)floatingpoint.h 2.5 99/06/22 SMI"
# 1 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1/include/sys/ieeefp.h" 1 3 4
# 17 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1/include/sys/ieeefp.h" 3 4
#pragma ident "@(#)ieeefp.h 2.8 99/10/29"
# 27 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1/include/sys/ieeefp.h" 3 4
enum fp_direction_type {
fp_nearest = 0,
fp_tozero = 1,
fp_positive = 2,
fp_negative = 3
};
enum fp_precision_type {
fp_extended = 0,
fp_single = 1,
fp_double = 2,
fp_precision_3 = 3
};
enum fp_exception_type {
fp_inexact = 0,
fp_division = 1,
fp_underflow = 2,
fp_overflow = 3,
fp_invalid = 4
};
enum fp_trap_enable_type {
fp_trap_inexact = 0,
fp_trap_division = 1,
fp_trap_underflow = 2,
fp_trap_overflow = 3,
fp_trap_invalid = 4
};
# 133 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1/include/sys/ieeefp.h" 3 4
enum fp_class_type {
fp_zero = 0,
fp_subnormal = 1,
fp_normal = 2,
fp_infinity = 3,
fp_quiet = 4,
fp_signaling = 5
};
# 26 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1/include/floatingpoint.h" 2 3 4
# 62 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1/include/floatingpoint.h" 3 4
typedef int sigfpe_code_type;
typedef void (*sigfpe_handler_type)();
extern sigfpe_handler_type sigfpe (sigfpe_code_type, sigfpe_handler_type);
typedef float single;
typedef unsigned extended[3];
typedef long double quadruple;
typedef unsigned fp_exception_field_type;
# 94 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1/include/floatingpoint.h" 3 4
typedef char decimal_string[512];
typedef struct {
enum fp_class_type fpclass;
int sign;
int exponent;
decimal_string ds;
int more;
int ndigits;
} decimal_record;
enum decimal_form {
fixed_form,
floating_form
};
typedef struct {
enum fp_direction_type rd;
enum decimal_form df;
int ndigits;
} decimal_mode;
enum decimal_string_form {
invalid_form,
whitespace_form,
fixed_int_form,
fixed_intdot_form,
fixed_dotfrac_form,
fixed_intdotfrac_form,
floating_int_form,
floating_intdot_form,
floating_dotfrac_form,
floating_intdotfrac_form,
inf_form,
infinity_form,
nan_form,
nanstring_form
};
extern void single_to_decimal (single *, decimal_mode *, decimal_record *, fp_exception_field_type *);
extern void double_to_decimal (double *, decimal_mode *, decimal_record *, fp_exception_field_type *);
extern void extended_to_decimal (extended *, decimal_mode *, decimal_record *, fp_exception_field_type *);
extern void quadruple_to_decimal (quadruple *, decimal_mode *, decimal_record *, fp_exception_field_type *);
extern void decimal_to_single (single *, decimal_mode *, decimal_record *, fp_exception_field_type *);
extern void decimal_to_double (double *, decimal_mode *, decimal_record *, fp_exception_field_type *);
extern void decimal_to_extended (extended *, decimal_mode *, decimal_record *, fp_exception_field_type *);
extern void decimal_to_quadruple (quadruple *, decimal_mode *, decimal_record *, fp_exception_field_type *);
extern void string_to_decimal (char **, int, int, decimal_record *, enum decimal_string_form *, char **);
extern void func_to_decimal (char **, int, int, decimal_record *, enum decimal_string_form *, char **, int (*)(void), int *, int (*)(int));
extern void file_to_decimal (char **, int, int, decimal_record *, enum decimal_string_form *, char **, FILE *, int *);
extern char *seconvert (single *, int, int *, int *, char *);
extern char *sfconvert (single *, int, int *, int *, char *);
extern char *sgconvert (single *, int, int, char *);
extern char *econvert (double, int, int *, int *, char *);
extern char *fconvert (double, int, int *, int *, char *);
extern char *gconvert (double, int, int, char *);
extern char *qeconvert (quadruple *, int, int *, int *, char *);
extern char *qfconvert (quadruple *, int, int *, int *, char *);
extern char *qgconvert (quadruple *, int, int, char *);
extern char *ecvt (double, int, int *, int *);
extern char *fcvt (double, int, int *, int *);
extern char *gcvt (double, int, char *);
extern double atof (const char *);
extern double strtod (const char *, char **);
# 251 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1/include/math.h" 2 3 4
# 81 "des_locl.h" 2
# 1 "../../include/openssl/des.h" 1
# 70 "../../include/openssl/des.h"
# 1 "../../include/openssl/opensslconf.h" 1
# 71 "../../include/openssl/des.h" 2
# 1 "../../include/openssl/e_os2.h" 1
# 1 "../../include/openssl/opensslconf.h" 1
# 7 "../../include/openssl/e_os2.h" 2
# 72 "../../include/openssl/des.h" 2
typedef unsigned char des_cblock[8];
typedef unsigned char const_des_cblock[8];
typedef struct des_ks_struct
{
union {
des_cblock cblock;
unsigned long deslong[2];
} ks;
int weak_key;
} des_key_schedule[16];
# 114 "../../include/openssl/des.h"
extern int des_check_key;
extern int des_rw_mode;
extern int des_set_weak_key_flag;
const char *des_options(void);
void des_ecb3_encrypt(const_des_cblock *input, des_cblock *output,
des_key_schedule ks1,des_key_schedule ks2,
des_key_schedule ks3, int enc);
unsigned long des_cbc_cksum(const unsigned char *input,des_cblock *output,
long length,des_key_schedule schedule,
const_des_cblock *ivec);
void des_cbc_encrypt(const unsigned char *input,unsigned char *output,
long length,des_key_schedule schedule,des_cblock *ivec,
int enc);
void des_ncbc_encrypt(const unsigned char *input,unsigned char *output,
long length,des_key_schedule schedule,des_cblock *ivec,
int enc);
void des_xcbc_encrypt(const unsigned char *input,unsigned char *output,
long length,des_key_schedule schedule,des_cblock *ivec,
const_des_cblock *inw,const_des_cblock *outw,int enc);
void des_cfb_encrypt(const unsigned char *in,unsigned char *out,int numbits,
long length,des_key_schedule schedule,des_cblock *ivec,
int enc);
void des_ecb_encrypt(const_des_cblock *input,des_cblock *output,
des_key_schedule ks,int enc);
# 150 "../../include/openssl/des.h"
void des_encrypt1(unsigned long *data,des_key_schedule ks, int enc);
void des_encrypt2(unsigned long *data,des_key_schedule ks, int enc);
void des_encrypt3(unsigned long *data, des_key_schedule ks1,
des_key_schedule ks2, des_key_schedule ks3);
void des_decrypt3(unsigned long *data, des_key_schedule ks1,
des_key_schedule ks2, des_key_schedule ks3);
void des_ede3_cbc_encrypt(const unsigned char *input,unsigned char *output,
long length,
des_key_schedule ks1,des_key_schedule ks2,
des_key_schedule ks3,des_cblock *ivec,int enc);
void des_ede3_cbcm_encrypt(const unsigned char *in,unsigned char *out,
long length,
des_key_schedule ks1,des_key_schedule ks2,
des_key_schedule ks3,
des_cblock *ivec1,des_cblock *ivec2,
int enc);
void des_ede3_cfb64_encrypt(const unsigned char *in,unsigned char *out,
long length,des_key_schedule ks1,
des_key_schedule ks2,des_key_schedule ks3,
des_cblock *ivec,int *num,int enc);
void des_ede3_ofb64_encrypt(const unsigned char *in,unsigned char *out,
long length,des_key_schedule ks1,
des_key_schedule ks2,des_key_schedule ks3,
des_cblock *ivec,int *num);
void des_xwhite_in2out(const_des_cblock *des_key,const_des_cblock *in_white,
des_cblock *out_white);
int des_enc_read(int fd,void *buf,int len,des_key_schedule sched,
des_cblock *iv);
int des_enc_write(int fd,const void *buf,int len,des_key_schedule sched,
des_cblock *iv);
char *des_fcrypt(const char *buf,const char *salt, char *ret);
char *des_crypt(const char *buf,const char *salt);
char *crypt(const char *buf,const char *salt);
void des_ofb_encrypt(const unsigned char *in,unsigned char *out,int numbits,
long length,des_key_schedule schedule,des_cblock *ivec);
void des_pcbc_encrypt(const unsigned char *input,unsigned char *output,
long length,des_key_schedule schedule,des_cblock *ivec,
int enc);
unsigned long des_quad_cksum(const unsigned char *input,des_cblock output[],
long length,int out_count,des_cblock *seed);
void des_random_seed(des_cblock *key);
int des_random_key(des_cblock *ret);
int des_read_password(des_cblock *key,const char *prompt,int verify);
int des_read_2passwords(des_cblock *key1,des_cblock *key2,
const char *prompt,int verify);
int des_read_pw_string(char *buf,int length,const char *prompt,int verify);
void des_set_odd_parity(des_cblock *key);
int des_check_key_parity(const_des_cblock *key);
int des_is_weak_key(const_des_cblock *key);
int des_set_key(const_des_cblock *key,des_key_schedule schedule);
int des_key_sched(const_des_cblock *key,des_key_schedule schedule);
int des_set_key_checked(const_des_cblock *key,des_key_schedule schedule);
void des_set_key_unchecked(const_des_cblock *key,des_key_schedule schedule);
void des_string_to_key(const char *str,des_cblock *key);
void des_string_to_2keys(const char *str,des_cblock *key1,des_cblock *key2);
void des_cfb64_encrypt(const unsigned char *in,unsigned char *out,long length,
des_key_schedule schedule,des_cblock *ivec,int *num,
int enc);
void des_ofb64_encrypt(const unsigned char *in,unsigned char *out,long length,
des_key_schedule schedule,des_cblock *ivec,int *num);
int des_read_pw(char *buf,char *buff,int size,const char *prompt,int verify);
# 259 "../../include/openssl/des.h"
typedef des_key_schedule bit_64;
# 84 "des_locl.h" 2
# 93 "des_locl.h"
# 1 "/usr/include/string.h" 1 3 4
# 16 "/usr/include/string.h" 3 4
#pragma ident "@(#)string.h 1.24 99/08/10 SMI"
# 1 "/usr/include/iso/string_iso.h" 1 3 4
# 28 "/usr/include/iso/string_iso.h" 3 4
#pragma ident "@(#)string_iso.h 1.2 99/11/09 SMI"
# 60 "/usr/include/iso/string_iso.h" 3 4
extern int memcmp(const void *, const void *, size_t);
extern void *memcpy(void *, const void *, size_t);
extern void *memmove(void *, const void *, size_t);
extern void *memset(void *, int, size_t);
extern char *strcat(char *, const char *);
extern int strcmp(const char *, const char *);
extern char *strcpy(char *, const char *);
extern int strcoll(const char *, const char *);
extern size_t strcspn(const char *, const char *);
extern char *strerror(int);
extern size_t strlen(const char *);
extern char *strncat(char *, const char *, size_t);
extern int strncmp(const char *, const char *, size_t);
extern char *strncpy(char *, const char *, size_t);
extern size_t strspn(const char *, const char *);
extern char *strtok(char *, const char *);
extern size_t strxfrm(char *, const char *, size_t);
# 112 "/usr/include/iso/string_iso.h" 3 4
extern void *memchr(const void *, int, size_t);
extern char *strchr(const char *, int);
extern char *strpbrk(const char *, const char *);
extern char *strrchr(const char *, int);
extern char *strstr(const char *, const char *);
# 19 "/usr/include/string.h" 2 3 4
# 63 "/usr/include/string.h" 3 4
extern void *memccpy(void *, const void *, int, size_t);
extern char *strsignal(int);
extern int ffs(int);
extern int strcasecmp(const char *, const char *);
extern int strncasecmp(const char *, const char *, size_t);
extern size_t strlcpy(char *, const char *, size_t);
extern size_t strlcat(char *, const char *, size_t);
extern char *strdup(const char *);
# 94 "des_locl.h" 2
# 408 "des_locl.h"
extern const unsigned long des_SPtrans[8][64];
void fcrypt_body(unsigned long *out,des_key_schedule ks,
unsigned long Eswap0, unsigned long Eswap1);
# 88 "read_pwd.c" 2
# 1 "../cryptlib.h" 1
# 65 "../cryptlib.h"
# 1 "../../include/openssl/e_os.h" 1
# 62 "../../include/openssl/e_os.h"
# 1 "../../include/openssl/opensslconf.h" 1
# 63 "../../include/openssl/e_os.h" 2
# 66 "../cryptlib.h" 2
# 1 "../../include/openssl/crypto.h" 1
# 68 "../../include/openssl/crypto.h"
# 1 "../../include/openssl/stack.h" 1
# 66 "../../include/openssl/stack.h"
typedef struct stack_st
{
int num;
char **data;
int sorted;
int num_alloc;
int (*comp)(const char * const *, const char * const *);
} STACK;
int sk_num(const STACK *);
char *sk_value(const STACK *, int);
char *sk_set(STACK *, int, char *);
STACK *sk_new(int (*cmp)(const char * const *, const char * const *));
STACK *sk_new_null(void);
void sk_free(STACK *);
void sk_pop_free(STACK *st, void (*func)(void *));
int sk_insert(STACK *sk,char *data,int where);
char *sk_delete(STACK *st,int loc);
char *sk_delete_ptr(STACK *st, char *p);
int sk_find(STACK *st,char *data);
int sk_push(STACK *st,char *data);
int sk_unshift(STACK *st,char *data);
char *sk_shift(STACK *st);
char *sk_pop(STACK *st);
void sk_zero(STACK *st);
int (*sk_set_cmp_func(STACK *sk, int (*c)(const char * const *,
const char * const *)))
(const char * const *, const char * const *);
STACK *sk_dup(STACK *st);
void sk_sort(STACK *st);
# 69 "../../include/openssl/crypto.h" 2
# 1 "../../include/openssl/safestack.h" 1
# 70 "../../include/openssl/crypto.h" 2
# 1 "../../include/openssl/opensslv.h" 1
# 71 "../../include/openssl/crypto.h" 2
# 1 "../../include/openssl/symhacks.h" 1
# 79 "../../include/openssl/crypto.h" 2
# 158 "../../include/openssl/crypto.h"
typedef struct
{
int references;
struct CRYPTO_dynlock_value *data;
} CRYPTO_dynlock;
# 185 "../../include/openssl/crypto.h"
typedef struct bio_st BIO_dummy;
typedef struct crypto_ex_data_st
{
STACK *sk;
int dummy;
} CRYPTO_EX_DATA;
typedef int CRYPTO_EX_new(void *parent, void *ptr, CRYPTO_EX_DATA *ad,
int idx, long argl, void *argp);
typedef void CRYPTO_EX_free(void *parent, void *ptr, CRYPTO_EX_DATA *ad,
int idx, long argl, void *argp);
typedef int CRYPTO_EX_dup(CRYPTO_EX_DATA *to, CRYPTO_EX_DATA *from, void *from_d,
int idx, long argl, void *argp);
typedef struct crypto_ex_data_func_st
{
long argl;
void *argp;
CRYPTO_EX_new *new_func;
CRYPTO_EX_free *free_func;
CRYPTO_EX_dup *dup_func;
} CRYPTO_EX_DATA_FUNCS;
# 253 "../../include/openssl/crypto.h"
int CRYPTO_mem_ctrl(int mode);
int CRYPTO_is_mem_check_on(void);
# 278 "../../include/openssl/crypto.h"
const char *SSLeay_version(int type);
unsigned long SSLeay(void);
int OPENSSL_issetugid(void);
int CRYPTO_get_ex_new_index(int idx, STACK **skp, long argl, void *argp,
CRYPTO_EX_new *new_func, CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func);
int CRYPTO_set_ex_data(CRYPTO_EX_DATA *ad, int idx, void *val);
void *CRYPTO_get_ex_data(CRYPTO_EX_DATA *ad,int idx);
int CRYPTO_dup_ex_data(STACK *meth, CRYPTO_EX_DATA *to,
CRYPTO_EX_DATA *from);
void CRYPTO_free_ex_data(STACK *meth, void *obj, CRYPTO_EX_DATA *ad);
void CRYPTO_new_ex_data(STACK *meth, void *obj, CRYPTO_EX_DATA *ad);
int CRYPTO_get_new_lockid(char *name);
int CRYPTO_num_locks(void);
void CRYPTO_lock(int mode, int type,const char *file,int line);
void CRYPTO_set_locking_callback(void (*func)(int mode,int type,
const char *file,int line));
void (*CRYPTO_get_locking_callback(void))(int mode,int type,const char *file,
int line);
void CRYPTO_set_add_lock_callback(int (*func)(int *num,int mount,int type,
const char *file, int line));
int (*CRYPTO_get_add_lock_callback(void))(int *num,int mount,int type,
const char *file,int line);
void CRYPTO_set_id_callback(unsigned long (*func)(void));
unsigned long (*CRYPTO_get_id_callback(void))(void);
unsigned long CRYPTO_thread_id(void);
const char *CRYPTO_get_lock_name(int type);
int CRYPTO_add_lock(int *pointer,int amount,int type, const char *file,
int line);
int CRYPTO_get_new_dynlockid(void);
void CRYPTO_destroy_dynlockid(int i);
struct CRYPTO_dynlock_value *CRYPTO_get_dynlock_value(int i);
void CRYPTO_set_dynlock_create_callback(struct CRYPTO_dynlock_value *(*dyn_create_function)(const char *file, int line));
void CRYPTO_set_dynlock_lock_callback(void (*dyn_lock_function)(int mode, struct CRYPTO_dynlock_value *l, const char *file, int line));
void CRYPTO_set_dynlock_destroy_callback(void (*dyn_destroy_function)(struct CRYPTO_dynlock_value *l, const char *file, int line));
struct CRYPTO_dynlock_value *(*CRYPTO_get_dynlock_create_callback(void))(const char *file,int line);
void (*CRYPTO_get_dynlock_lock_callback(void))(int mode, struct CRYPTO_dynlock_value *l, const char *file,int line);
void (*CRYPTO_get_dynlock_destroy_callback(void))(struct CRYPTO_dynlock_value *l, const char *file,int line);
int CRYPTO_set_mem_functions(void *(*m)(size_t),void *(*r)(void *,size_t), void (*f)(void *));
int CRYPTO_set_locked_mem_functions(void *(*m)(size_t), void (*free_func)(void *));
int CRYPTO_set_mem_debug_functions(void (*m)(void *,int,const char *,int,int),
void (*r)(void *,void *,int,const char *,int,int),
void (*f)(void *,int),
void (*so)(long),
long (*go)(void));
void CRYPTO_get_mem_functions(void *(**m)(size_t),void *(**r)(void *, size_t), void (**f)(void *));
void CRYPTO_get_locked_mem_functions(void *(**m)(size_t), void (**f)(void *));
void CRYPTO_get_mem_debug_functions(void (**m)(void *,int,const char *,int,int),
void (**r)(void *,void *,int,const char *,int,int),
void (**f)(void *,int),
void (**so)(long),
long (**go)(void));
void *CRYPTO_malloc_locked(int num, const char *file, int line);
void CRYPTO_free_locked(void *);
void *CRYPTO_malloc(int num, const char *file, int line);
void CRYPTO_free(void *);
void *CRYPTO_realloc(void *addr,int num, const char *file, int line);
void *CRYPTO_remalloc(void *addr,int num, const char *file, int line);
void CRYPTO_set_mem_debug_options(long bits);
long CRYPTO_get_mem_debug_options(void);
int CRYPTO_push_info_(const char *info, const char *file, int line);
int CRYPTO_pop_info(void);
int CRYPTO_remove_all_info(void);
# 362 "../../include/openssl/crypto.h"
void CRYPTO_dbg_malloc(void *addr,int num,const char *file,int line,int before_p);
void CRYPTO_dbg_realloc(void *addr1,void *addr2,int num,const char *file,int line,int before_p);
void CRYPTO_dbg_free(void *addr,int before_p);
# 373 "../../include/openssl/crypto.h"
void CRYPTO_dbg_set_options(long bits);
long CRYPTO_dbg_get_options(void);
void CRYPTO_mem_leaks_fp(FILE *);
void CRYPTO_mem_leaks(struct bio_st *bio);
void CRYPTO_mem_leaks_cb(void (*cb)(unsigned long, const char *, int, int, void *));
void ERR_load_CRYPTO_strings(void);
# 68 "../cryptlib.h" 2
# 1 "../../include/openssl/buffer.h" 1
# 66 "../../include/openssl/buffer.h"
typedef struct buf_mem_st
{
int length;
char *data;
int max;
} BUF_MEM;
BUF_MEM *BUF_MEM_new(void);
void BUF_MEM_free(BUF_MEM *a);
int BUF_MEM_grow(BUF_MEM *str, int len);
char * BUF_strdup(const char *str);
void ERR_load_BUF_strings(void);
# 69 "../cryptlib.h" 2
# 1 "../../include/openssl/bio.h" 1
# 65 "../../include/openssl/bio.h"
# 1 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1/include/stdarg.h" 1 3 4
# 90 "/usr/local/lib/gcc-lib/sparc-sun-solaris2.8/3.1/include/stdarg.h" 3 4
typedef __gnuc_va_list va_list;
# 66 "../../include/openssl/bio.h" 2
# 214 "../../include/openssl/bio.h"
typedef struct bio_st BIO;
typedef void bio_info_cb(struct bio_st *, int, const char *, int, long, long);
typedef struct bio_method_st
{
int type;
const char *name;
int (*bwrite)(BIO *, const char *, int);
int (*bread)(BIO *, char *, int);
int (*bputs)(BIO *, const char *);
int (*bgets)(BIO *, char *, int);
long (*ctrl)(BIO *, int, long, void *);
int (*create)(BIO *);
int (*destroy)(BIO *);
long (*callback_ctrl)(BIO *, int, bio_info_cb *);
} BIO_METHOD;
# 248 "../../include/openssl/bio.h"
struct bio_st
{
BIO_METHOD *method;
long (*callback)(struct bio_st *,int,const char *,int, long,long);
char *cb_arg;
int init;
int shutdown;
int flags;
int retry_reason;
int num;
void *ptr;
struct bio_st *next_bio;
struct bio_st *prev_bio;
int references;
unsigned long num_read;
unsigned long num_write;
CRYPTO_EX_DATA ex_data;
};
typedef struct bio_f_buffer_ctx_struct
{
int ibuf_size;
int obuf_size;
char *ibuf;
int ibuf_len;
int ibuf_off;
char *obuf;
int obuf_len;
int obuf_off;
} BIO_F_BUFFER_CTX;
# 464 "../../include/openssl/bio.h"
size_t BIO_ctrl_pending(BIO *b);
size_t BIO_ctrl_wpending(BIO *b);
# 482 "../../include/openssl/bio.h"
size_t BIO_ctrl_get_write_guarantee(BIO *b);
size_t BIO_ctrl_get_read_request(BIO *b);
int BIO_ctrl_reset_read_request(BIO *b);
int BIO_set_ex_data(BIO *bio,int idx,void *data);
void *BIO_get_ex_data(BIO *bio,int idx);
int BIO_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func,
CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func);
unsigned long BIO_number_read(BIO *bio);
unsigned long BIO_number_written(BIO *bio);
# 505 "../../include/openssl/bio.h"
BIO_METHOD *BIO_s_file(void );
BIO *BIO_new_file(const char *filename, const char *mode);
BIO *BIO_new_fp(FILE *stream, int close_flag);
BIO * BIO_new(BIO_METHOD *type);
int BIO_set(BIO *a,BIO_METHOD *type);
int BIO_free(BIO *a);
void BIO_vfree(BIO *a);
int BIO_read(BIO *b, void *data, int len);
int BIO_gets(BIO *bp,char *buf, int size);
int BIO_write(BIO *b, const void *data, int len);
int BIO_puts(BIO *bp,const char *buf);
long BIO_ctrl(BIO *bp,int cmd,long larg,void *parg);
long BIO_callback_ctrl(BIO *b, int cmd, void (*fp)(struct bio_st *, int, const char *, int, long, long));
char * BIO_ptr_ctrl(BIO *bp,int cmd,long larg);
long BIO_int_ctrl(BIO *bp,int cmd,long larg,int iarg);
BIO * BIO_push(BIO *b,BIO *append);
BIO * BIO_pop(BIO *b);
void BIO_free_all(BIO *a);
BIO * BIO_find_type(BIO *b,int bio_type);
BIO * BIO_next(BIO *b);
BIO * BIO_get_retry_BIO(BIO *bio, int *reason);
int BIO_get_retry_reason(BIO *bio);
BIO * BIO_dup_chain(BIO *in);
int BIO_nread0(BIO *bio, char **buf);
int BIO_nread(BIO *bio, char **buf, int num);
int BIO_nwrite0(BIO *bio, char **buf);
int BIO_nwrite(BIO *bio, char **buf, int num);
long BIO_debug_callback(BIO *bio,int cmd,const char *argp,int argi,
long argl,long ret);
BIO_METHOD *BIO_s_mem(void);
BIO *BIO_new_mem_buf(void *buf, int len);
BIO_METHOD *BIO_s_socket(void);
BIO_METHOD *BIO_s_connect(void);
BIO_METHOD *BIO_s_accept(void);
BIO_METHOD *BIO_s_fd(void);
BIO_METHOD *BIO_s_log(void);
BIO_METHOD *BIO_s_bio(void);
BIO_METHOD *BIO_s_null(void);
BIO_METHOD *BIO_f_null(void);
BIO_METHOD *BIO_f_buffer(void);
BIO_METHOD *BIO_f_nbio_test(void);
int BIO_sock_should_retry(int i);
int BIO_sock_non_fatal_error(int error);
int BIO_fd_should_retry(int i);
int BIO_fd_non_fatal_error(int error);
int BIO_dump(BIO *b,const char *bytes,int len);
int BIO_dump_indent(BIO *b,const char *bytes,int len,int indent);
struct hostent *BIO_gethostbyname(const char *name);
# 580 "../../include/openssl/bio.h"
int BIO_sock_error(int sock);
int BIO_socket_ioctl(int fd, long type, unsigned long *arg);
int BIO_socket_nbio(int fd,int mode);
int BIO_get_port(const char *str, unsigned short *port_ptr);
int BIO_get_host_ip(const char *str, unsigned char *ip);
int BIO_get_accept_socket(char *host_port,int mode);
int BIO_accept(int sock,char **ip_port);
int BIO_sock_init(void );
void BIO_sock_cleanup(void);
int BIO_set_tcp_ndelay(int sock,int turn_on);
BIO *BIO_new_socket(int sock, int close_flag);
BIO *BIO_new_fd(int fd, int close_flag);
BIO *BIO_new_connect(char *host_port);
BIO *BIO_new_accept(char *host_port);
int BIO_new_bio_pair(BIO **bio1, size_t writebuf1,
BIO **bio2, size_t writebuf2);
void BIO_copy_next_retry(BIO *b);
long BIO_ghbn_ctrl(int cmd,int iarg,char *parg);
int BIO_printf(BIO *bio, const char *format, ...);
int BIO_vprintf(BIO *bio, const char *format, va_list args);
int BIO_snprintf(char *buf, size_t n, const char *format, ...);
int BIO_vsnprintf(char *buf, size_t n, const char *format, va_list args);
void ERR_load_BIO_strings(void);
# 70 "../cryptlib.h" 2
# 1 "../../include/openssl/err.h" 1
# 71 "../../include/openssl/err.h"
# 1 "../../include/openssl/lhash.h" 1
# 78 "../../include/openssl/lhash.h"
typedef struct lhash_node_st
{
void *data;
struct lhash_node_st *next;
unsigned long hash;
} LHASH_NODE;
typedef struct lhash_st
{
LHASH_NODE **b;
int (*comp)();
unsigned long (*hash)();
unsigned int num_nodes;
unsigned int num_alloc_nodes;
unsigned int p;
unsigned int pmax;
unsigned long up_load;
unsigned long down_load;
unsigned long num_items;
unsigned long num_expands;
unsigned long num_expand_reallocs;
unsigned long num_contracts;
unsigned long num_contract_reallocs;
unsigned long num_hash_calls;
unsigned long num_comp_calls;
unsigned long num_insert;
unsigned long num_replace;
unsigned long num_delete;
unsigned long num_no_delete;
unsigned long num_retrieve;
unsigned long num_retrieve_miss;
unsigned long num_hash_comps;
int error;
} LHASH;
LHASH *lh_new(unsigned long (*h)( ), int (*c)( ));
void lh_free(LHASH *lh);
void *lh_insert(LHASH *lh, void *data);
void *lh_delete(LHASH *lh, void *data);
void *lh_retrieve(LHASH *lh, void *data);
void lh_doall(LHASH *lh, void (*func)( ));
void lh_doall_arg(LHASH *lh, void (*func)( ),void *arg);
unsigned long lh_strhash(const char *c);
unsigned long lh_num_items(LHASH *lh);
void lh_stats(LHASH *lh, FILE *out);
void lh_node_stats(LHASH *lh, FILE *out);
void lh_node_usage_stats(LHASH *lh, FILE *out);
void lh_stats_bio(LHASH *lh, BIO *out);
void lh_node_stats_bio(LHASH *lh, BIO *out);
void lh_node_usage_stats_bio(LHASH *lh, BIO *out);
# 72 "../../include/openssl/err.h" 2
# 90 "../../include/openssl/err.h"
# 1 "/usr/include/errno.h" 1 3 4
# 17 "/usr/include/errno.h" 3 4
#pragma ident "@(#)errno.h 1.16 99/07/26 SMI"
# 1 "/usr/include/sys/errno.h" 1 3 4
# 11 "/usr/include/sys/errno.h" 3 4
#pragma ident "@(#)errno.h 1.20 00/02/14 SMI"
# 24 "/usr/include/errno.h" 2 3 4
# 41 "/usr/include/errno.h" 3 4
extern int errno;
# 91 "../../include/openssl/err.h" 2
typedef struct err_state_st
{
unsigned long pid;
unsigned long err_buffer[16];
char *err_data[16];
int err_data_flags[16];
const char *err_file[16];
int err_line[16];
int top,bottom;
} ERR_STATE;
# 228 "../../include/openssl/err.h"
typedef struct ERR_string_data_st
{
unsigned long error;
const char *string;
} ERR_STRING_DATA;
void ERR_put_error(int lib, int func,int reason,const char *file,int line);
void ERR_set_error_data(char *data,int flags);
unsigned long ERR_get_error(void );
unsigned long ERR_get_error_line(const char **file,int *line);
unsigned long ERR_get_error_line_data(const char **file,int *line,
const char **data, int *flags);
unsigned long ERR_peek_error(void );
unsigned long ERR_peek_error_line(const char **file,int *line);
unsigned long ERR_peek_error_line_data(const char **file,int *line,
const char **data,int *flags);
void ERR_clear_error(void );
char *ERR_error_string(unsigned long e,char *buf);
void ERR_error_string_n(unsigned long e, char *buf, size_t len);
const char *ERR_lib_error_string(unsigned long e);
const char *ERR_func_error_string(unsigned long e);
const char *ERR_reason_error_string(unsigned long e);
void ERR_print_errors_fp(FILE *fp);
void ERR_print_errors(BIO *bp);
void ERR_add_error_data(int num, ...);
void ERR_load_strings(int lib,ERR_STRING_DATA str[]);
void ERR_load_ERR_strings(void);
void ERR_load_crypto_strings(void);
void ERR_free_strings(void);
void ERR_remove_state(unsigned long pid);
ERR_STATE *ERR_get_state(void);
LHASH *ERR_get_string_table(void);
LHASH *ERR_get_err_state_table(void);
int ERR_get_next_error_library(void);
# 71 "../cryptlib.h" 2
# 1 "../../include/openssl/opensslconf.h" 1
# 72 "../cryptlib.h" 2
# 89 "read_pwd.c" 2
# 1 "/usr/include/signal.h" 1 3 4
# 17 "/usr/include/signal.h" 3 4
#pragma ident "@(#)signal.h 1.38 99/08/10 SMI"
# 26 "/usr/include/signal.h" 3 4
# 1 "/usr/include/iso/signal_iso.h" 1 3 4
# 28 "/usr/include/iso/signal_iso.h" 3 4
#pragma ident "@(#)signal_iso.h 1.1 99/08/09 SMI"
# 1 "/usr/include/sys/iso/signal_iso.h" 1 3 4
# 28 "/usr/include/sys/iso/signal_iso.h" 3 4
#pragma ident "@(#)signal_iso.h 1.1 99/08/09 SMI"
# 80 "/usr/include/sys/iso/signal_iso.h" 3 4
extern long _sysconf(int);
# 32 "/usr/include/iso/signal_iso.h" 2 3 4
# 41 "/usr/include/iso/signal_iso.h" 3 4
typedef int sig_atomic_t;
extern void (*signal(int, void (*)(int)))(int);
extern int raise(int);
# 27 "/usr/include/signal.h" 2 3 4
# 1 "/usr/include/sys/signal.h" 1 3 4
# 16 "/usr/include/sys/signal.h" 3 4
#pragma ident "@(#)signal.h 1.54 99/07/26 SMI"
# 35 "/usr/include/sys/signal.h" 3 4
# 1 "/usr/include/sys/siginfo.h" 1 3 4
# 16 "/usr/include/sys/siginfo.h" 3 4
#pragma ident "@(#)siginfo.h 1.54 98/03/27 SMI"
# 126 "/usr/include/sys/siginfo.h" 3 4
# 1 "/usr/include/sys/machsig.h" 1 3 4
# 16 "/usr/include/sys/machsig.h" 3 4
#pragma ident "@(#)machsig.h 1.15 99/08/15 SMI"
# 127 "/usr/include/sys/siginfo.h" 2 3 4
# 221 "/usr/include/sys/siginfo.h" 3 4
typedef struct siginfo {
int si_signo;
int si_code;
int si_errno;
union {
int __pad[((128 / sizeof (int)) - 3)];
struct {
pid_t __pid;
union {
struct {
uid_t __uid;
union sigval __value;
} __kill;
struct {
clock_t __utime;
int __status;
clock_t __stime;
} __cld;
} __pdata;
} __proc;
struct {
void *__addr;
int __trapno;
caddr_t __pc;
} __fault;
struct {
int __fd;
long __band;
} __file;
struct {
caddr_t __faddr;
timestruc_t __tstamp;
short __syscall;
char __nsysarg;
char __fault;
long __sysarg[8];
int __mstate[10];
} __prof;
} __data;
} siginfo_t;
# 354 "/usr/include/sys/siginfo.h" 3 4
typedef struct k_siginfo {
int si_signo;
int si_code;
int si_errno;
union {
struct {
pid_t __pid;
union {
struct {
uid_t __uid;
union sigval __value;
} __kill;
struct {
clock_t __utime;
int __status;
clock_t __stime;
} __cld;
} __pdata;
} __proc;
struct {
void *__addr;
int __trapno;
caddr_t __pc;
} __fault;
struct {
int __fd;
long __band;
} __file;
struct {
caddr_t __faddr;
timestruc_t __tstamp;
short __syscall;
char __nsysarg;
char __fault;
} __prof;
} __data;
} k_siginfo_t;
typedef struct sigqueue {
struct sigqueue *sq_next;
k_siginfo_t sq_info;
void (*sq_func)(struct sigqueue *);
void *sq_backptr;
} sigqueue_t;
# 36 "/usr/include/sys/signal.h" 2 3 4
typedef struct {
unsigned int __sigbits[4];
} sigset_t;
# 58 "/usr/include/sys/signal.h" 3 4
typedef struct {
unsigned int __sigbits[2];
} k_sigset_t;
# 76 "/usr/include/sys/signal.h" 3 4
struct sigaction {
int sa_flags;
union {
void (*_handler)();
void (*_sigaction)(int, siginfo_t *, void *);
} _funcptr;
sigset_t sa_mask;
int sa_resv[2];
};
# 173 "/usr/include/sys/signal.h" 3 4
typedef struct sigaltstack {
void *ss_sp;
size_t ss_size;
int ss_flags;
} stack_t;
# 202 "/usr/include/sys/signal.h" 3 4
typedef struct signotify_id {
pid_t sn_pid;
int sn_index;
int sn_pad;
} signotify_id_t;
# 232 "/usr/include/sys/signal.h" 3 4
struct sigstack {
void *ss_sp;
int ss_onstack;
};
# 28 "/usr/include/signal.h" 2 3 4
# 46 "/usr/include/signal.h" 3 4
extern const char **_sys_siglistp;
extern const int _sys_siglistn;
# 57 "/usr/include/signal.h" 3 4
extern int kill(pid_t, int);
extern int sigaction(int, const struct sigaction *, struct sigaction *);
extern int sigaddset(sigset_t *, int);
extern int sigdelset(sigset_t *, int);
extern int sigemptyset(sigset_t *);
extern int sigfillset(sigset_t *);
extern int sigismember(const sigset_t *, int);
extern int sigpending(sigset_t *);
extern int sigprocmask(int, const sigset_t *, sigset_t *);
extern int sigsuspend(const sigset_t *);
# 1 "/usr/include/sys/procset.h" 1 3 4
# 16 "/usr/include/sys/procset.h" 3 4
#pragma ident "@(#)procset.h 1.20 00/02/14 SMI"
# 41 "/usr/include/sys/procset.h" 3 4
typedef enum
idtype
{
P_PID,
P_PPID,
P_PGID,
P_SID,
P_CID,
P_UID,
P_GID,
P_ALL,
P_LWPID,
P_TASKID,
P_PROJID
} idtype_t;
# 67 "/usr/include/sys/procset.h" 3 4
typedef enum idop {
POP_DIFF,
POP_AND,
POP_OR,
POP_XOR
} idop_t;
typedef struct procset {
idop_t p_op;
idtype_t p_lidtype;
id_t p_lid;
idtype_t p_ridtype;
id_t p_rid;
} procset_t;
# 74 "/usr/include/signal.h" 2 3 4
extern int gsignal(int);
extern int (*ssignal(int, int (*)(int)))(int);
extern int sigsend(idtype_t, id_t, int);
extern int sigsendset(const procset_t *, int);
extern int sig2str(int, char *);
extern int str2sig(const char *, int *);
extern void (*bsd_signal(int, void (*)(int)))(int);
extern int killpg(pid_t, int);
extern int siginterrupt(int, int);
extern int sigaltstack(const stack_t *, stack_t *);
extern int sighold(int);
extern int sigignore(int);
extern int sigpause(int);
extern int sigrelse(int);
extern void (*sigset(int, void (*)(int)))(int);
extern int sigstack(struct sigstack *, struct sigstack *);
extern int pthread_kill(pthread_t, int);
extern int pthread_sigmask(int, const sigset_t *, sigset_t *);
extern int sigwaitinfo(const sigset_t *, siginfo_t *);
extern int sigtimedwait(const sigset_t *, siginfo_t *, const struct timespec *);
extern int sigqueue(pid_t, int, const union sigval);
# 206 "/usr/include/signal.h" 3 4
extern int sigwait(sigset_t *);
# 90 "read_pwd.c" 2
# 1 "/usr/include/setjmp.h" 1 3 4
# 17 "/usr/include/setjmp.h" 3 4
#pragma ident "@(#)setjmp.h 1.36 99/08/10 SMI"
# 1 "/usr/include/iso/setjmp_iso.h" 1 3 4
# 28 "/usr/include/iso/setjmp_iso.h" 3 4
#pragma ident "@(#)setjmp_iso.h 1.1 99/08/09 SMI"
# 69 "/usr/include/iso/setjmp_iso.h" 3 4
typedef int jmp_buf[12];
# 79 "/usr/include/iso/setjmp_iso.h" 3 4
extern int setjmp(jmp_buf);
#pragma unknown_control_flow(setjmp)
extern int _setjmp(jmp_buf);
#pragma unknown_control_flow(_setjmp)
extern void longjmp(jmp_buf, int);
extern void _longjmp(jmp_buf, int);
# 20 "/usr/include/setjmp.h" 2 3 4
# 43 "/usr/include/setjmp.h" 3 4
typedef int sigjmp_buf[19];
extern int sigsetjmp(sigjmp_buf, int);
#pragma unknown_control_flow(sigsetjmp)
extern void siglongjmp(sigjmp_buf, int);
# 93 "read_pwd.c" 2
# 143 "read_pwd.c"
# 1 "/usr/include/termios.h" 1 3 4
# 11 "/usr/include/termios.h" 3 4
#pragma ident "@(#)termios.h 1.6 92/07/14 SMI"
# 1 "/usr/include/sys/termios.h" 1 3 4
# 16 "/usr/include/sys/termios.h" 3 4
#pragma ident "@(#)termios.h 1.38 98/02/20 SMI"
# 1 "/usr/include/sys/ttydev.h" 1 3 4
# 11 "/usr/include/sys/ttydev.h" 3 4
#pragma ident "@(#)ttydev.h 1.7 92/07/14 SMI"
# 23 "/usr/include/sys/termios.h" 2 3 4
# 56 "/usr/include/sys/termios.h" 3 4
typedef unsigned int tcflag_t;
typedef unsigned char cc_t;
typedef unsigned int speed_t;
struct termios {
tcflag_t c_iflag;
tcflag_t c_oflag;
tcflag_t c_cflag;
tcflag_t c_lflag;
cc_t c_cc[19];
};
# 80 "/usr/include/sys/termios.h" 3 4
extern speed_t cfgetospeed(const struct termios *);
extern int cfsetospeed(struct termios *, speed_t);
extern speed_t cfgetispeed(const struct termios *);
extern int cfsetispeed(struct termios *, speed_t);
extern int tcgetattr(int, struct termios *);
extern int tcsetattr(int, int, const struct termios *);
extern int tcsendbreak(int, int);
extern int tcdrain(int);
extern int tcflush(int, int);
extern int tcflow(int, int);
# 110 "/usr/include/sys/termios.h" 3 4
extern pid_t tcgetsid(int);
# 374 "/usr/include/sys/termios.h" 3 4
struct ppsclockev {
struct timeval tv;
uint_t serial;
};
# 556 "/usr/include/sys/termios.h" 3 4
struct winsize {
unsigned short ws_row;
unsigned short ws_col;
unsigned short ws_xpixel;
unsigned short ws_ypixel;
};
# 14 "/usr/include/termios.h" 2 3 4
# 144 "read_pwd.c" 2
# 167 "read_pwd.c"
# 1 "/usr/include/sys/ioctl.h" 1 3 4
# 11 "/usr/include/sys/ioctl.h" 3 4
#pragma ident "@(#)ioctl.h 1.9 92/07/14 SMI"
# 168 "read_pwd.c" 2
# 200 "read_pwd.c"
static void read_till_nl(FILE *);
static void recsig(int);
static void pushsig(void);
static void popsig(void);
static struct sigaction savsig[32];
static jmp_buf save;
int des_read_pw_string(char *buf, int length, const char *prompt,
int verify)
{
char buff[1024];
int ret;
ret=des_read_pw(buf,buff,(length>1024)?1024:length,prompt,verify);
memset(buff,0,1024);
return(ret);
}
static void read_till_nl(FILE *in)
{
char buf[4 +1];
do {
fgets(buf,4,in);
} while (strchr(buf,'\n') == 0);
}
int des_read_pw(char *buf, char *buff, int size, const char *prompt,
int verify)
{
# 250 "read_pwd.c"
struct termios tty_orig,tty_new;
int number;
int ok;
static int ps;
int is_a_tty;
static FILE *tty;
char *p;
if (setjmp(save))
{
ok=0;
goto error;
}
number=5;
ok=0;
ps=0;
is_a_tty=1;
tty=0;
# 281 "read_pwd.c"
if ((tty=fopen("/dev/tty","r")) == 0)
tty=(&__iob[0]);
if (tcgetattr(fileno(tty),&tty_orig) == -1)
{
if (errno == 25)
is_a_tty=0;
else
if (errno == 22)
is_a_tty=0;
else
return(-1);
}
memcpy(&(tty_new),&(tty_orig),sizeof(tty_orig));
# 314 "read_pwd.c"
pushsig();
ps=1;
tty_new.c_lflag &= ~0000010;
if (is_a_tty && (tcsetattr(fileno(tty),(('T'<<8)|14),&tty_new) == -1))
return(-1);
# 337 "read_pwd.c"
ps=2;
while ((!ok) && (number--))
{
fputs(prompt,(&__iob[2]));
fflush((&__iob[2]));
buf[0]='\0';
fgets(buf,size,tty);
if (((tty)->_flag & 0020)) goto error;
if (((tty)->_flag & 0040)) goto error;
if ((p=(char *)strchr(buf,'\n')) != 0)
*p='\0';
else read_till_nl(tty);
if (verify)
{
fprintf((&__iob[2]),"\nVerifying password - %s",prompt);
fflush((&__iob[2]));
buff[0]='\0';
fgets(buff,size,tty);
if (((tty)->_flag & 0020)) goto error;
if ((p=(char *)strchr(buff,'\n')) != 0)
*p='\0';
else read_till_nl(tty);
if (strcmp(buf,buff) != 0)
{
fprintf((&__iob[2]),"\nVerify failure");
fflush((&__iob[2]));
break;
}
}
ok=1;
}
error:
fprintf((&__iob[2]),"\n");
if (ps >= 2) tcsetattr(fileno(tty),(('T'<<8)|14),&tty_orig);
if (ps >= 1) popsig();
if ((&__iob[0]) != tty) fclose(tty);
return(!ok);
}
# 407 "read_pwd.c"
static void pushsig(void)
{
int i;
struct sigaction sa;
memset(&sa,0,sizeof sa);
sa._funcptr._handler=recsig;
for (i=1; i<32; i++)
{
if (i == 16)
continue;
if (i == 17)
continue;
sigaction(i,&sa,&savsig[i]);
}
signal(20,(void(*)())0);
}
static void popsig(void)
{
int i;
for (i=1; i<32; i++)
{
if (i == 16)
continue;
if (i == 17)
continue;
sigaction(i,&savsig[i],0);
}
}
static void recsig(int i)
{
longjmp(save,1);
}
>Fix:
Don't use -fprofile-arcs with -O
>Release-Note:
>Audit-Trail:
>Unformatted: