Skip to content

Commit 2b2c154

Browse files
petlyhTobiGr
authored andcommitted
Avoid PeerTube accepting non-URLs
1 parent 1e93b1d commit 2b2c154

5 files changed

Lines changed: 36 additions & 8 deletions

File tree

extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/linkHandler/PeertubeChannelLinkHandlerFactory.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
import org.schabi.newpipe.extractor.linkhandler.ListLinkHandlerFactory;
66
import org.schabi.newpipe.extractor.utils.Parser;
77

8+
import java.net.MalformedURLException;
9+
import java.net.URL;
810
import java.util.List;
911

1012
public final class PeertubeChannelLinkHandlerFactory extends ListLinkHandlerFactory {
@@ -51,8 +53,13 @@ public String getUrl(final String id,
5153

5254
@Override
5355
public boolean onAcceptUrl(final String url) {
54-
return url.contains("/accounts/") || url.contains("/a/")
55-
|| url.contains("/video-channels/") || url.contains("/c/");
56+
try {
57+
new URL(url);
58+
return url.contains("/accounts/") || url.contains("/a/")
59+
|| url.contains("/video-channels/") || url.contains("/c/");
60+
} catch (final MalformedURLException e) {
61+
return false;
62+
}
5663
}
5764

5865
/**

extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/linkHandler/PeertubeCommentsLinkHandlerFactory.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
import org.schabi.newpipe.extractor.exceptions.ParsingException;
66
import org.schabi.newpipe.extractor.linkhandler.ListLinkHandlerFactory;
77

8+
import java.net.MalformedURLException;
9+
import java.net.URL;
810
import java.util.List;
911

1012
public final class PeertubeCommentsLinkHandlerFactory extends ListLinkHandlerFactory {
@@ -27,7 +29,12 @@ public String getId(final String url) throws ParsingException, UnsupportedOperat
2729

2830
@Override
2931
public boolean onAcceptUrl(final String url) throws FoundAdException {
30-
return url.contains("/videos/") || url.contains("/w/");
32+
try {
33+
new URL(url);
34+
return url.contains("/videos/") || url.contains("/w/");
35+
} catch (final MalformedURLException e) {
36+
return false;
37+
}
3138
}
3239

3340
@Override

extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/linkHandler/PeertubePlaylistLinkHandlerFactory.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
import org.schabi.newpipe.extractor.linkhandler.ListLinkHandlerFactory;
77
import org.schabi.newpipe.extractor.utils.Parser;
88

9+
import java.net.MalformedURLException;
10+
import java.net.URL;
911
import java.util.List;
1012

1113
public final class PeertubePlaylistLinkHandlerFactory extends ListLinkHandlerFactory {
@@ -52,9 +54,10 @@ public String getId(final String url) throws ParsingException, UnsupportedOperat
5254
@Override
5355
public boolean onAcceptUrl(final String url) {
5456
try {
57+
new URL(url);
5558
getId(url);
5659
return true;
57-
} catch (final ParsingException e) {
60+
} catch (final ParsingException | MalformedURLException e) {
5861
return false;
5962
}
6063
}

extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/linkHandler/PeertubeStreamLinkHandlerFactory.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@
66
import org.schabi.newpipe.extractor.linkhandler.LinkHandlerFactory;
77
import org.schabi.newpipe.extractor.utils.Parser;
88

9+
import java.net.MalformedURLException;
10+
import java.net.URL;
11+
912
public final class PeertubeStreamLinkHandlerFactory extends LinkHandlerFactory {
1013

1114
private static final PeertubeStreamLinkHandlerFactory INSTANCE
@@ -47,9 +50,10 @@ public boolean onAcceptUrl(final String url) throws FoundAdException {
4750
return false;
4851
}
4952
try {
53+
new URL(url);
5054
getId(url);
5155
return true;
52-
} catch (final ParsingException e) {
56+
} catch (final ParsingException | MalformedURLException e) {
5357
return false;
5458
}
5559
}

extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/linkHandler/PeertubeTrendingLinkHandlerFactory.java

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
import org.schabi.newpipe.extractor.exceptions.ParsingException;
55
import org.schabi.newpipe.extractor.linkhandler.ListLinkHandlerFactory;
66

7+
import java.net.MalformedURLException;
8+
import java.net.URL;
79
import java.util.List;
810
import java.util.Map;
911

@@ -69,8 +71,13 @@ public String getId(final String url) throws ParsingException, UnsupportedOperat
6971

7072
@Override
7173
public boolean onAcceptUrl(final String url) {
72-
return url.contains("/videos?") || url.contains("/videos/trending")
73-
|| url.contains("/videos/most-liked") || url.contains("/videos/recently-added")
74-
|| url.contains("/videos/local");
74+
try {
75+
new URL(url);
76+
return url.contains("/videos?") || url.contains("/videos/trending")
77+
|| url.contains("/videos/most-liked") || url.contains("/videos/recently-added")
78+
|| url.contains("/videos/local");
79+
} catch (final MalformedURLException e) {
80+
return false;
81+
}
7582
}
7683
}

0 commit comments

Comments
 (0)