diff --git a/mozilla/xpcom/io/nsLocalFileUnix.cpp b/mozilla/xpcom/io/nsLocalFileUnix.cpp index 1b74cfa7230..594dc08a8d0 100644 --- a/mozilla/xpcom/io/nsLocalFileUnix.cpp +++ b/mozilla/xpcom/io/nsLocalFileUnix.cpp @@ -43,6 +43,9 @@ #include #include #endif +#if defined(VMS) +#include +#endif #include "nsCRT.h" #include "nsCOMPtr.h" @@ -921,6 +924,14 @@ nsLocalFile::GetFileSize(PRInt64 *aFileSize) NS_ENSURE_ARG_POINTER(aFileSize); VALIDATE_STAT_CACHE(); +#if defined(VMS) + /* Only two record formats can report correct file content size */ + if ((mCachedStat.st_fab_rfm != FAB$C_STMLF) && + (mCachedStat.st_fab_rfm != FAB$C_STMCR)) { + return NS_ERROR_FAILURE; + } +#endif + /* XXX autoconf for and use stat64 if available */ if (S_ISDIR(mCachedStat.st_mode)) { *aFileSize = LL_ZERO;