moc: Store errno after fopen call

To avoid QFile::encodeName() potentially overriding the value.

Task-number: QTBUG-101926
Change-Id: Ie751df877d6624238ded344474b5eccc324ec541
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
(cherry picked from commit dd1b7b5539d6aecdd5f8342ef0fa260e40f5c483)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
Alexandru Croitor 2023-07-12 11:13:14 +02:00 committed by Qt Cherry-pick Bot
parent 06d434ef28
commit c1425724d7

View File

@ -549,9 +549,12 @@ int runMoc(int argc, char **argv)
f = fopen(QFile::encodeName(jsonOutputFileName).constData(), "w");
if (!f)
#endif
{
const auto fopen_errno = errno;
fprintf(stderr, "moc: Cannot create JSON output file %s. %s\n",
QFile::encodeName(jsonOutputFileName).constData(),
strerror(errno));
strerror(fopen_errno));
}
jsonOutput.reset(f);
}
} else { // use stdout
@ -596,9 +599,12 @@ int runMoc(int argc, char **argv)
depFileHandleRaw = fopen(QFile::encodeName(depOutputFileName).constData(), "w");
if (!depFileHandleRaw)
#endif
{
const auto fopen_errno = errno;
fprintf(stderr, "moc: Cannot create dep output file '%s'. %s\n",
QFile::encodeName(depOutputFileName).constData(),
strerror(errno));
strerror(fopen_errno));
}
depFileHandle.reset(depFileHandleRaw);
if (!depFileHandle.isNull()) {