diff options
| author | Johan B. C. Engelen <jbc.engelen@swissonline.ch> | 2014-03-30 22:44:37 +0000 |
|---|---|---|
| committer | Johan B. C. Engelen <j.b.c.engelen@alumnus.utwente.nl> | 2014-03-30 22:44:37 +0000 |
| commit | 8ad7f3d261619d168ee0bf0e54824f9f354d2970 (patch) | |
| tree | dbdd5c828a9740db4aaa4fc3695a522841ea97c9 /src/ui/dialog/filedialogimpl-gtkmm.cpp | |
| parent | inkjar: Handle return values correctly (diff) | |
| download | inkscape-8ad7f3d261619d168ee0bf0e54824f9f354d2970.tar.gz inkscape-8ad7f3d261619d168ee0bf0e54824f9f354d2970.zip | |
imageicon: clean up unnecessary file existance check introduced in rev 12263. Could theoretically lead to uninitialized value use (of "info" struct)
same for filedialogimpl-gtkmm
(bzr r13240)
Diffstat (limited to 'src/ui/dialog/filedialogimpl-gtkmm.cpp')
| -rw-r--r-- | src/ui/dialog/filedialogimpl-gtkmm.cpp | 31 |
1 files changed, 15 insertions, 16 deletions
diff --git a/src/ui/dialog/filedialogimpl-gtkmm.cpp b/src/ui/dialog/filedialogimpl-gtkmm.cpp index fdc9cecc3..60b437575 100644 --- a/src/ui/dialog/filedialogimpl-gtkmm.cpp +++ b/src/ui/dialog/filedialogimpl-gtkmm.cpp @@ -514,10 +514,11 @@ void SVGPreview::showTooLarge(long fileLength) bool SVGPreview::set(Glib::ustring &fileName, int dialogType) { - if (!Glib::file_test(fileName, Glib::FILE_TEST_EXISTS)) + if (!Glib::file_test(fileName, Glib::FILE_TEST_EXISTS)) { + showNoPreview(); return false; + } - //g_message("fname:%s", fileName.c_str()); if (Glib::file_test(fileName, Glib::FILE_TEST_IS_DIR)) { showNoPreview(); @@ -525,24 +526,22 @@ bool SVGPreview::set(Glib::ustring &fileName, int dialogType) } if (Glib::file_test(fileName, Glib::FILE_TEST_IS_REGULAR)) - { + { Glib::ustring fileNameUtf8 = Glib::filename_to_utf8(fileName); - gchar *fName = const_cast<gchar *>(fileNameUtf8.c_str()); + gchar *fName = const_cast<gchar *>(fileNameUtf8.c_str()); // const-cast probably not necessary? (not necessary on Windows version of stat()) struct stat info; - if (g_file_test (fName, G_FILE_TEST_EXISTS) && g_stat(fName, &info)) - { - g_warning("SVGPreview::set() : %s : %s", - fName, strerror(errno)); - return FALSE; - } - long fileLen = info.st_size; - if (fileLen > 0xA00000L) - { + if (g_stat(fName, &info)) // stat returns 0 upon success + { + g_warning("SVGPreview::set() : %s : %s", fName, strerror(errno)); + return false; + } + if (info.st_size > 0xA00000L) + { showingNoPreview = false; - showTooLarge(fileLen); - return FALSE; - } + showTooLarge(info.st_size); + return false; } + } Glib::ustring svg = ".svg"; Glib::ustring svgz = ".svgz"; |
