summaryrefslogtreecommitdiff
path: root/libopie2
Side-by-side diff
Diffstat (limited to 'libopie2') (more/less context) (ignore whitespace changes)
-rw-r--r--libopie2/opiemm/opieexif.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/libopie2/opiemm/opieexif.cpp b/libopie2/opiemm/opieexif.cpp
index de49937..653216c 100644
--- a/libopie2/opiemm/opieexif.cpp
+++ b/libopie2/opiemm/opieexif.cpp
@@ -200,17 +200,17 @@ int ExifData::ReadJpegSections (QFile & infile, ReadMode_t ReadMode)
switch(marker){
case M_SOS: // stop before hitting compressed data
// If reading entire image is requested, read the rest of the data.
if (ReadMode & READ_IMAGE){
unsigned long size;
- size = QMAX( 0ul, infile.size()-infile.at() );
+ size = infile.size()-infile.at();
Data = (uchar *)malloc(size);
if (Data == NULL){
return false;
}
got = infile.readBlock((char*)Data, size);
if (( unsigned ) got != size){
return false;
@@ -804,17 +804,21 @@ ExifData::~ExifData()
//--------------------------------------------------------------------------
// process a EXIF jpeg file
//--------------------------------------------------------------------------
bool ExifData::scan(const QString & path)
{
int ret;
QFile f(path);
- f.open(IO_ReadOnly);
+ if ( !f.open(IO_ReadOnly) ) {
+ owarn << "Unable to open file " << f.name() << " readonly" << oendl;
+ DiscardData();
+ return false;
+ }
// Scan the JPEG headers.
ret = ReadJpegSections(f, READ_EXIF);
if (ret == false){
owarn << "Not JPEG file!" << oendl;
DiscardData();
f.close();