2022-11-09 Fred Gleason <fredg@paravelsystems.com>

* Added an image format check to rddbmgr(8) to prevent it from
	attempting to generate thumbnail images from non-JPEG/PNG images.

Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
This commit is contained in:
Fred Gleason
2022-11-09 12:57:11 -05:00
parent 0c139bf849
commit 3227e340c1
4 changed files with 62 additions and 11 deletions

View File

@@ -1149,3 +1149,33 @@ QString RDMimeType(const QString &filename,bool *ok)
return ret;
}
QString RDMimeType(const QByteArray &data,bool *ok)
{
QStringList args;
QString ret;
QByteArray ret_data;
args.push_back("--mime-type");
args.push_back("-");
QProcess *proc=new QProcess();
proc->start("/usr/bin/file",args);
proc->waitForStarted();
proc->write(data);
proc->closeWriteChannel();
proc->waitForFinished();
if((proc->exitStatus()!=QProcess::NormalExit)||(proc->exitCode()!=0)) {
*ok=false;
delete proc;
return ret;
}
*ok=true;
ret=QString(proc->readAllStandardOutput()).
split(":",QString::SkipEmptyParts).last().trimmed();
delete proc;
return ret;
}

View File

@@ -112,6 +112,7 @@ int RDCheckExitCode(const QString &msg,int exit_code);
int RDCheckExitCode(RDConfig *config,const QString &msg,int exit_code);
int RDCheckReturnCode(const QString &msg,int code,int ok_value);
QString RDMimeType(const QString &filename,bool *ok);
QString RDMimeType(const QByteArray &data,bool *ok);
#endif // RDCONF_H