diff options
author | jpierre%netscape.com <devnull@localhost> | 2004-02-11 05:28:06 +0000 |
---|---|---|
committer | jpierre%netscape.com <devnull@localhost> | 2004-02-11 05:28:06 +0000 |
commit | a32042b484d32ce545ee8bc47078b4971f9750ec (patch) | |
tree | 7f87220defb4eafada4b07be08020d906f072e3c | |
parent | 95bf559b27d9442d7b0bdbe9949ef27fc472eb5d (diff) | |
parent | e919b8f2fd7872e91ea1cc6626c206071072bf3a (diff) | |
download | nss-hg-a32042b484d32ce545ee8bc47078b4971f9750ec.tar.gz |
Fix for 233493 . Corrections based on Wan-Teh's feedback.
-rw-r--r-- | security/nss/cmd/symkeyutil/symkeyutil.c | 58 |
1 files changed, 20 insertions, 38 deletions
diff --git a/security/nss/cmd/symkeyutil/symkeyutil.c b/security/nss/cmd/symkeyutil/symkeyutil.c index f1f3d1c41..f7563b2e2 100644 --- a/security/nss/cmd/symkeyutil/symkeyutil.c +++ b/security/nss/cmd/symkeyutil/symkeyutil.c @@ -54,20 +54,9 @@ #include <stdio.h> #include <string.h> -#if defined(WIN32) -#include "io.h" -#endif - #include "secutil.h" -#if defined(XP_UNIX) -#include <unistd.h> -#endif - #include "nspr.h" -#include "prtypes.h" -#include "prtime.h" -#include "prlong.h" #include "pk11func.h" #include "secasn1.h" @@ -76,9 +65,6 @@ #include "secoid.h" #include "certdb.h" #include "nss.h" -#include <sys/types.h> -#include <sys/stat.h> -#include <fcntl.h> typedef struct _KeyTypes { CK_KEY_TYPE keyType; @@ -119,35 +105,31 @@ static KeyTypes keyArray[] = { static int keyArraySize = sizeof(keyArray)/sizeof(keyArray[0]); int -GetLen(int fd) +GetLen(PRFileDesc* fd) { - struct stat buf; - int ret; + PRFileInfo info; - ret = fstat(fd,&buf); - if (ret < 0) return ret; + if (PR_SUCCESS != PR_GetOpenFileInfo(fd, &info)) { + return -1; + } - return buf.st_size; + return info.size; } -#ifndef O_BINARY -#define O_BINARY 0 -#endif - int ReadBuf(char *inFile, SECItem *item) { int len; int ret; - int fd = open(inFile, O_RDONLY|O_BINARY); - if (fd < 0) { - perror(inFile); + PRFileDesc* fd = PR_Open(inFile, PR_RDONLY, 0); + if (NULL == fd) { + SECU_PrintError("Error", "PR_Open failed"); return -1; } len = GetLen(fd); if (len < 0) { - perror(inFile); + SECU_PrintError("Error", "PR_GetOpenFileInfo failed"); return -1; } item->data = (unsigned char *)PORT_Alloc(len); @@ -156,14 +138,14 @@ ReadBuf(char *inFile, SECItem *item) return -1; } - ret = read(fd,item->data,item->len); + ret = PR_Read(fd,item->data,item->len); if (ret < 0) { + SECU_PrintError("Error", "PR_Read failed"); PORT_Free(item->data); item->data = NULL; - perror(inFile); return -1; } - close(fd); + PR_Close(fd); item->len = len; return 0; } @@ -172,18 +154,18 @@ int WriteBuf(char *inFile, SECItem *item) { int ret; - int fd = open(inFile, O_WRONLY|O_CREAT|O_BINARY); - if (fd < 0) { - perror(inFile); + PRFileDesc* fd = PR_Open(inFile, PR_WRONLY|PR_CREATE_FILE, 0x200); + if (NULL == fd) { + SECU_PrintError("Error", "PR_Open failed"); return -1; } - ret = write(fd,item->data,item->len); + ret = PR_Write(fd,item->data,item->len); if (ret < 0) { - perror(inFile); + SECU_PrintError("Error", "PR_Write failed"); return -1; } - close(fd); + PR_Close(fd); return 0; } @@ -1012,7 +994,7 @@ main(int argc, char **argv) goto shutdown; } - /* WriteBuf outputs it's own error using Perror */ + /* WriteBuf outputs it's own error using SECU_PrintError */ ret = WriteBuf(symKeyUtil.options[opt_KeyFile].arg, &data); if (ret < 0) { goto shutdown; |