Bump for 3.6-28
[LibreOffice.git] / libcdr / libcdr-issupported-exception.patch.1
blob4196c466da4fedc311d8cd09bc03c8d6de96237e
1 rhbz#891082: CMXDocument::isSupported: catch exceptions
3 --- misc/libcdr-0.0.9/src/lib/CMXDocument.cpp
4 +++ misc/build/libcdr-0.0.9/src/lib/CMXDocument.cpp
5 @@ -46,20 +46,24 @@
6  */
7  bool libcdr::CMXDocument::isSupported(WPXInputStream *input)
8  {
9 -  input->seek(0, WPX_SEEK_SET);
10 -  unsigned riff = readU32(input);
11 -  if (riff != FOURCC_RIFF && riff != FOURCC_RIFX)
12 -    return false;
13 -  input->seek(4, WPX_SEEK_CUR);
14 -  char signature_c = (char)readU8(input);
15 -  if (signature_c != 'C' && signature_c != 'c')
16 -    return false;
17 -  char signature_d = (char)readU8(input);
18 -  if (signature_d != 'M' && signature_d != 'm')
19 -    return false;
20 -  char signature_r = (char)readU8(input);
21 -  if (signature_r != 'X' && signature_r != 'x')
22 +  try {
23 +    input->seek(0, WPX_SEEK_SET);
24 +    unsigned riff = readU32(input);
25 +    if (riff != FOURCC_RIFF && riff != FOURCC_RIFX)
26 +      return false;
27 +    input->seek(4, WPX_SEEK_CUR);
28 +    char signature_c = (char)readU8(input);
29 +    if (signature_c != 'C' && signature_c != 'c')
30 +      return false;
31 +    char signature_d = (char)readU8(input);
32 +    if (signature_d != 'M' && signature_d != 'm')
33 +      return false;
34 +    char signature_r = (char)readU8(input);
35 +    if (signature_r != 'X' && signature_r != 'x')
36 +      return false;
37 +  } catch (...) {
38      return false;
39 +  }
40    return true;
41  }