Ignore:
Timestamp:
2017-10-07T22:39:09+02:00 (2 years ago)
Author:
Don-vip
Message:

fix #14961 - catch IAE when decoding base64 data

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/tools/ImageProvider.java

    r12870 r12937  
    977977            String data = m.group(3);
    978978            byte[] bytes;
    979             if (";base64".equals(base64)) {
    980                 bytes = Base64.getDecoder().decode(data);
    981             } else {
    982                 try {
     979            try {
     980                if (";base64".equals(base64)) {
     981                    bytes = Base64.getDecoder().decode(data);
     982                } else {
    983983                    bytes = Utils.decodeUrl(data).getBytes(StandardCharsets.UTF_8);
    984                 } catch (IllegalArgumentException ex) {
    985                     Logging.log(Logging.LEVEL_WARN, "Unable to decode URL data part: "+ex.getMessage() + " (" + data + ')', ex);
    986                     return null;
    987                 }
     984                }
     985            } catch (IllegalArgumentException ex) {
     986                Logging.log(Logging.LEVEL_WARN, "Unable to decode URL data part: "+ex.getMessage() + " (" + data + ')', ex);
     987                return null;
    988988            }
    989989            String mediatype = m.group(1);
Note: See TracChangeset for help on using the changeset viewer.