diff options
| author | Kelly Rauchenberger <fefferburbia@gmail.com> | 2017-02-13 10:01:05 -0500 |
|---|---|---|
| committer | Kelly Rauchenberger <fefferburbia@gmail.com> | 2017-02-13 10:01:05 -0500 |
| commit | 83927a4d3a3eb3dac54872acdb7947dfda0846dd (patch) | |
| tree | ebb59b0a316b81de332b3ac1e2de547ae65c2629 | |
| parent | 21d28dfaedf8818a73ff817ae31d6267861331ba (diff) | |
| download | advice-83927a4d3a3eb3dac54872acdb7947dfda0846dd.tar.gz advice-83927a4d3a3eb3dac54872acdb7947dfda0846dd.tar.bz2 advice-83927a4d3a3eb3dac54872acdb7947dfda0846dd.zip | |
Fixed crash when a malformed image is downloaded
| -rw-r--r-- | advice.cpp | 21 |
1 files changed, 11 insertions, 10 deletions
| diff --git a/advice.cpp b/advice.cpp index 11a5d65..f635a12 100644 --- a/advice.cpp +++ b/advice.cpp | |||
| @@ -180,20 +180,21 @@ void advice::run() const | |||
| 180 | 180 | ||
| 181 | std::string imgstr = imgbuf.str(); | 181 | std::string imgstr = imgbuf.str(); |
| 182 | img = Magick::Blob(imgstr.c_str(), imgstr.length()); | 182 | img = Magick::Blob(imgstr.c_str(), imgstr.length()); |
| 183 | pic.read(img); | 183 | |
| 184 | if (pic.rows() == 0) | 184 | try |
| 185 | { | 185 | { |
| 186 | continue; | 186 | pic.read(img); |
| 187 | } | ||
| 188 | 187 | ||
| 189 | // Too small! | 188 | if ((pic.rows() > 0) && (pic.columns() >= 400)) |
| 190 | if (pic.columns() < 400) | 189 | { |
| 190 | std::cout << url << std::endl; | ||
| 191 | found = true; | ||
| 192 | } | ||
| 193 | } catch (const Magick::ErrorOption& e) | ||
| 191 | { | 194 | { |
| 192 | continue; | 195 | // Occurs when the the data downloaded from the server is malformed |
| 196 | std::cout << "Magick: " << e.what() << std::endl; | ||
| 193 | } | 197 | } |
| 194 | |||
| 195 | std::cout << url << std::endl; | ||
| 196 | found = true; | ||
| 197 | } | 198 | } |
| 198 | 199 | ||
| 199 | if (!found) | 200 | if (!found) |
