From 7457642b8c4ad409f2cf8f91e083301ea2440af9 Mon Sep 17 00:00:00 2001 From: "Dr. Stephen Henson" Date: Tue, 2 Jun 2009 11:31:32 +0000 Subject: [PATCH] PR: 1937 Submitted by: Mark Phalan Reviewed by: steve@openssl.org Fix misuse of st_mode field in struct stat. --- apps/ca.c | 4 ++-- crypto/rand/randfile.c | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/apps/ca.c b/apps/ca.c index 68516ee9bd..7bd229139e 100644 --- a/apps/ca.c +++ b/apps/ca.c @@ -858,8 +858,8 @@ bad: perror(outdir); goto err; } -#ifdef S_IFDIR - if (!(sb.st_mode & S_IFDIR)) +#ifdef S_ISDIR + if (!S_ISDIR(sb.st_mode)) { BIO_printf(bio_err,"%s need to be a directory\n",outdir); perror(outdir); diff --git a/crypto/rand/randfile.c b/crypto/rand/randfile.c index d108353bbc..e12fe0b90c 100644 --- a/crypto/rand/randfile.c +++ b/crypto/rand/randfile.c @@ -127,8 +127,8 @@ int RAND_load_file(const char *file, long bytes) in=fopen(file,"rb"); #endif if (in == NULL) goto err; -#if defined(S_IFBLK) && defined(S_IFCHR) - if (sb.st_mode & (S_IFBLK | S_IFCHR)) { +#if defined(S_ISBLK) && defined(S_ISCHR) + if (S_ISBLK(sb.st_mode) || S_ISCHR(sb.st_mode)) { /* this file is a device. we don't want read an infinite number * of bytes from a random device, nor do we want to use buffered * I/O because we will waste system entropy. @@ -174,8 +174,8 @@ int RAND_write_file(const char *file) i=stat(file,&sb); if (i != -1) { -#if defined(S_IFBLK) && defined(S_IFCHR) - if (sb.st_mode & (S_IFBLK | S_IFCHR)) { +#if defined(S_ISBLK) && defined(S_ISCHR) + if (S_ISBLK(sb.st_mode) || S_ISCHR(sb.st_mode)) { /* this file is a device. we don't write back to it. * we "succeed" on the assumption this is some sort * of random device. Otherwise attempting to write to