aboutsummaryrefslogtreecommitdiffstats
path: root/qpdf/qpdf-ctest.c
diff options
context:
space:
mode:
Diffstat (limited to 'qpdf/qpdf-ctest.c')
-rw-r--r--qpdf/qpdf-ctest.c18
1 files changed, 16 insertions, 2 deletions
diff --git a/qpdf/qpdf-ctest.c b/qpdf/qpdf-ctest.c
index 12f6a4cc..c535aa23 100644
--- a/qpdf/qpdf-ctest.c
+++ b/qpdf/qpdf-ctest.c
@@ -10,13 +10,27 @@ static qpdf_data qpdf = 0;
static FILE* safe_fopen(char const* filename, char const* mode)
{
- FILE* f = fopen(filename, mode); /* XXXX */
+ // This function is basically a "C" port of QUtil::safe_fopen.
+ FILE* f = 0;
+#ifdef _MSC_VER
+ errno_t err = fopen_s(&f, filename, mode);
+ if (err != 0)
+ {
+ char buf[94];
+ strerror_s(buf, sizeof(buf), errno);
+ fprintf(stderr, "%s: unable to open %s: %s\n",
+ whoami, filename, buf);
+ exit(2);
+ }
+#else
+ f = fopen(filename, mode);
if (f == NULL)
{
fprintf(stderr, "%s: unable to open %s: %s\n",
- whoami, filename, strerror(errno)); /* XXXX */
+ whoami, filename, strerror(errno));
exit(2);
}
+#endif
return f;
}