Add length check for package name
authorStefan <Stefan_Hahn1@gmx.net>
Fri, 2 Sep 2016 15:27:42 +0000 (17:27 +0200)
committerStefan <Stefan_Hahn1@gmx.net>
Fri, 2 Sep 2016 15:27:42 +0000 (17:27 +0200)
wcfsetup/install/files/lib/data/package/Package.class.php

index aa7d97429dde4829583818f69630334b7686cc0b..a82dde7d82d462b7e424a8fdc56c0723fdc9ef8e 100644 (file)
@@ -239,6 +239,8 @@ class Package extends DatabaseObject {
         * A valid package name begins with at least one alphanumeric character
         * or an underscore, followed by a dot, followed by at least one alphanumeric
         * character or an underscore and the same again, possibly repeatedly.
+        * The package name cannot be any longer than 191 characters in total due to
+        * internal database character encoding limitations.
         * Example:
         *      com.woltlab.wcf
         * 
@@ -250,6 +252,10 @@ class Package extends DatabaseObject {
         * @return      boolean         isValid
         */
        public static function isValidPackageName($packageName) {
+               if (mb_strlen($packageName) < 3 || mb_strlen($packageName) > 191) {
+                       return false;
+               }
+               
                return preg_match('%^[a-zA-Z0-9_-]+\.[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$%', $packageName);
        }