Browse Source

Protect against bad paths and URLs

See gh-21722
pull/25369/head
Phillip Webb 5 years ago
parent
commit
4ad149e1e7
  1. 8
      spring-boot-project/spring-boot-tools/spring-boot-buildpack-platform/src/main/java/org/springframework/boot/buildpack/platform/build/BuildpackReference.java
  2. 2
      spring-boot-project/spring-boot-tools/spring-boot-buildpack-platform/src/main/java/org/springframework/boot/buildpack/platform/build/DirectoryBuildpack.java
  3. 2
      spring-boot-project/spring-boot-tools/spring-boot-buildpack-platform/src/main/java/org/springframework/boot/buildpack/platform/build/TarGzipBuildpack.java

8
spring-boot-project/spring-boot-tools/spring-boot-buildpack-platform/src/main/java/org/springframework/boot/buildpack/platform/build/BuildpackReference.java

@ -53,11 +53,17 @@ public final class BuildpackReference { @@ -53,11 +53,17 @@ public final class BuildpackReference {
if (url.getProtocol().equals("file")) {
return Paths.get(url.getPath());
}
return null;
}
catch (MalformedURLException ex) {
// not a URL, fall through to attempting to find a plain file path
}
return Paths.get(this.value);
try {
return Paths.get(this.value);
}
catch (Exception ex) {
return null;
}
}
@Override

2
spring-boot-project/spring-boot-tools/spring-boot-buildpack-platform/src/main/java/org/springframework/boot/buildpack/platform/build/DirectoryBuildpack.java

@ -93,7 +93,7 @@ final class DirectoryBuildpack implements Buildpack { @@ -93,7 +93,7 @@ final class DirectoryBuildpack implements Buildpack {
*/
static Buildpack resolve(BuildpackResolverContext context, BuildpackReference reference) {
Path path = reference.asPath();
if (Files.exists(path) && Files.isDirectory(path)) {
if (path != null && Files.exists(path) && Files.isDirectory(path)) {
return new DirectoryBuildpack(path);
}
return null;

2
spring-boot-project/spring-boot-tools/spring-boot-buildpack-platform/src/main/java/org/springframework/boot/buildpack/platform/build/TarGzipBuildpack.java

@ -109,7 +109,7 @@ final class TarGzipBuildpack implements Buildpack { @@ -109,7 +109,7 @@ final class TarGzipBuildpack implements Buildpack {
*/
static Buildpack resolve(BuildpackResolverContext context, BuildpackReference reference) {
Path path = reference.asPath();
if (Files.exists(path) && Files.isRegularFile(path)) {
if (path != null && Files.exists(path) && Files.isRegularFile(path)) {
return new TarGzipBuildpack(path);
}
return null;

Loading…
Cancel
Save