From 00fd58283c2a975e2d2d1e53c8259bb0ed2264e8 Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Fri, 18 Oct 2002 12:23:42 +0000 Subject: [PATCH] Added extension checking to the rgb and bmp write of images. --- src/osgPlugins/bmp/ReaderWriterBMP.cpp | 7 +++++++ src/osgPlugins/rgb/ReaderWriterRGB.cpp | 3 +++ 2 files changed, 10 insertions(+) diff --git a/src/osgPlugins/bmp/ReaderWriterBMP.cpp b/src/osgPlugins/bmp/ReaderWriterBMP.cpp index d266f29d8..add6c9152 100644 --- a/src/osgPlugins/bmp/ReaderWriterBMP.cpp +++ b/src/osgPlugins/bmp/ReaderWriterBMP.cpp @@ -5,6 +5,7 @@ #include #include +#include /**************************************************************************** * @@ -309,6 +310,9 @@ class ReaderWriterBMP : public osgDB::ReaderWriter virtual ReadResult readImage(const std::string& fileName, const osgDB::ReaderWriter::Options*) { + std::string ext = osgDB::getFileExtension(fileName); + if (!acceptsExtension(ext)) return ReadResult::FILE_NOT_HANDLED; + unsigned char *imageData = NULL; int width_ret; int height_ret; @@ -345,6 +349,9 @@ class ReaderWriterBMP : public osgDB::ReaderWriter } virtual WriteResult writeImage(const osg::Image &img,const std::string& fileName, const osgDB::ReaderWriter::Options*) { + std::string ext = osgDB::getFileExtension(fileName); + if (!acceptsExtension(ext)) return WriteResult::FILE_NOT_HANDLED; + FILE *fp = fopen(fileName.c_str(), "wb"); if (!fp) return WriteResult::ERROR_IN_WRITING_FILE; // its easier for me to write a binary write using stdio than streams diff --git a/src/osgPlugins/rgb/ReaderWriterRGB.cpp b/src/osgPlugins/rgb/ReaderWriterRGB.cpp index e4214cc7f..1d0d8e1c9 100644 --- a/src/osgPlugins/rgb/ReaderWriterRGB.cpp +++ b/src/osgPlugins/rgb/ReaderWriterRGB.cpp @@ -366,6 +366,9 @@ class ReaderWriterRGB : public osgDB::ReaderWriter virtual WriteResult writeImage(const osg::Image &img,const std::string& fileName, const osgDB::ReaderWriter::Options*) { + std::string ext = osgDB::getFileExtension(fileName); + if (!acceptsExtension(ext)) return WriteResult::FILE_NOT_HANDLED; + FILE *fp = fopen(fileName.c_str(), "wb"); if (!fp) return WriteResult::ERROR_IN_WRITING_FILE;