[libbluray-devel] SIElementFilter: validate locator

hpi1 git at videolan.org
Tue Sep 22 14:08:23 CEST 2015


libbluray | branch: master | hpi1 <hpi1 at anonymous.org> | Thu Sep 17 18:24:30 2015 +0300| [84351639ddce602c736b688e4a9b003ed4ba78eb] | committer: hpi1

SIElementFilter: validate locator

> http://git.videolan.org/gitweb.cgi/libbluray.git/?a=commit;h=84351639ddce602c736b688e4a9b003ed4ba78eb
---

 .../java/javax/tv/service/navigation/SIElementFilter.java |   13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/src/libbluray/bdj/java/javax/tv/service/navigation/SIElementFilter.java b/src/libbluray/bdj/java/javax/tv/service/navigation/SIElementFilter.java
index 28d9665..f0dc97c 100644
--- a/src/libbluray/bdj/java/javax/tv/service/navigation/SIElementFilter.java
+++ b/src/libbluray/bdj/java/javax/tv/service/navigation/SIElementFilter.java
@@ -1,6 +1,7 @@
 /*
  * This file is part of libbluray
  * Copyright (C) 2010  William Hahne
+ * Copyright (C) 2015  Petri Hintukainen
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -25,9 +26,21 @@ import javax.tv.service.SIElement;
 import javax.tv.service.SIRequest;
 import javax.tv.service.SIRequestorImpl;
 
+import org.bluray.net.BDLocator;
+
 public final class SIElementFilter extends ServiceFilter
 {
     public SIElementFilter(SIElement element) throws FilterNotSupportedException {
+        if (element == null)
+            throw new NullPointerException();
+
+        try {
+            new BDLocator(element.getLocator().toExternalForm());
+        } catch (Exception e) {
+            System.err.println("Invalid SI element: " + e + " at " + org.videolan.Logger.dumpStack(e));
+            throw new FilterNotSupportedException();
+        }
+
         this.element = element;
     }
 



More information about the libbluray-devel mailing list