Changeset 415b51b


Ignore:
Timestamp:
Nov 28, 2015 12:54:41 PM (5 years ago)
Author:
zzz <zzz@…>
Branches:
master
Children:
7b83e23
Parents:
a03339b
Message:

i2psnark: Fix NPE caused by URL-to-URI conversion in -2 (ticket #1715)
Fix some other similar places

Files:
5 edited

Legend:

Unmodified
Added
Removed
  • apps/i2psnark/java/src/org/klomp/snark/TrackerClient.java

    ra03339b r415b51b  
    908908        return null;
    909909    String host = url.getHost();
     910    if (host == null)
     911        return null;
    910912    if (host.endsWith(".i2p"))
    911913        return ConvertToHash.getHash(host);
  • apps/ministreaming/java/src/net/i2p/client/streaming/I2PSocketEepGet.java

    ra03339b r415b51b  
    117117            if ("http".equals(url.getScheme())) {
    118118                String host = url.getHost();
     119                if (host == null)
     120                    throw new MalformedURLException("no hostname: " + _actualURL);
    119121                int port = url.getPort();
    120122                if (port <= 0 || port > 65535)
  • core/java/src/net/i2p/util/EepGet.java

    ra03339b r415b51b  
    732732                    // This oddly adds a ":" even if no port, but that seems to work.
    733733                    URI url = new URI(_actualURL);
    734                     if (_redirectLocation.startsWith("/"))
    735                         _actualURL = "http://" + url.getHost() + ":" + url.getPort() + _redirectLocation;
     734                    String host = url.getHost();
     735                    if (host == null)
     736                        throw new MalformedURLException("Redirected to invalid URL");
     737                    int port = url.getPort();
     738                    if (port < 0)
     739                        port = 80;
     740                    if (_redirectLocation.startsWith("/"))
     741                        _actualURL = "http://" + host + ":" + port + _redirectLocation;
    736742                    else
    737743                        // this blows up completely on a redirect to https://, for example
    738                         _actualURL = "http://" + url.getHost() + ":" + url.getPort() + "/" + _redirectLocation;
     744                        _actualURL = "http://" + host+ ":" + port + "/" + _redirectLocation;
    739745                }
    740746            } catch (URISyntaxException use) {
     
    12331239                if ("http".equals(url.getScheme())) {
    12341240                    String host = url.getHost();
     1241                    if (host == null)
     1242                        throw new MalformedURLException("URL is not supported:" + _actualURL);
    12351243                    String hostlc = host.toLowerCase(Locale.US);
    12361244                    if (hostlc.endsWith(".i2p"))
  • core/java/src/net/i2p/util/EepHead.java

    ra03339b r415b51b  
    187187                    // This oddly adds a ":" even if no port, but that seems to work.
    188188                    URI url = new URI(_actualURL);
    189                     if (_redirectLocation.startsWith("/"))
    190                         _actualURL = "http://" + url.getHost() + ":" + url.getPort() + _redirectLocation;
     189                    String host = url.getHost();
     190                    if (host == null)
     191                        throw new MalformedURLException("Redirected to invalid URL");
     192                    int port = url.getPort();
     193                    if (port < 0)
     194                        port = 80;
     195                    if (_redirectLocation.startsWith("/"))
     196                        _actualURL = "http://" + host + ":" + port + _redirectLocation;
    191197                    else
    192198                        // this blows up completely on a redirect to https://, for example
    193                         _actualURL = "http://" + url.getHost() + ":" + url.getPort() + "/" + _redirectLocation;
     199                        _actualURL = "http://" + host+ ":" + port + "/" + _redirectLocation;
    194200                }
    195201            } catch (URISyntaxException use) {
     
    265271        }
    266272        String host = url.getHost();
     273        if (host == null)
     274            throw new MalformedURLException("Bad URL");
    267275        int port = url.getPort();
    268276        String path = url.getRawPath();
  • core/java/src/net/i2p/util/SSLEepGet.java

    ra03339b r415b51b  
    561561            if ("https".equals(url.getScheme())) {
    562562                host = url.getHost();
     563                if (host == null)
     564                    throw new MalformedURLException("Bad URL");
    563565                if (host.toLowerCase(Locale.US).endsWith(".i2p"))
    564566                    throw new MalformedURLException("I2P addresses unsupported");
Note: See TracChangeset for help on using the changeset viewer.