This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

c/6815: gcc fails to compile read_pwd.c from openssl-0.9.6d with -fprofile-arcs -O



>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:


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]