Rechte fuer Anlegen von Verzeichnissen in /data/

Verzeichnisse in /data/ darf jeder anlegen, sofern es das
Verzeichnis bereits ausserhalb von /data/ gibt.
Gab es das nicht, durfte niemand anlegen, nicht einmal
der Master. In diesem Fall wird nun weiter ganz normal
geprueft, ob man es denn ausserhalb von /data/
anlegen duerfte.

Change-Id: I927982fb527332a6556e84aac7da84952b205927
diff --git a/secure/master/file_access.c b/secure/master/file_access.c
index c37273e..001d877 100644
--- a/secure/master/file_access.c
+++ b/secure/master/file_access.c
@@ -166,10 +166,16 @@
   // Erstellung eines Verezeichnisses jedem erlaubt sein, wenn es das
   // entsprechende Verzeichnis ausserhalb /data/ schon gibt.
   if (sizeof(path) > 6
-      && path[0..5] == "/"LIBDATADIR"/") {
+      && path[0..5] == "/"LIBDATADIR"/")
+  {
     if (fun=="mkdir")
-        return file_size(path[5..]) == FSIZE_DIR;
-
+    {
+      // wenn schon ausserhalb /data/ existent: erlauben
+      if (file_size(path[5..]) == FSIZE_DIR)
+        return 1;
+      // sonst fall-through und normale gucken, ob der Aufrufer ausserhalb
+      // /data/ denn duerfte.
+    }
     return valid_write(path[5..], euid, fun, obj) != 0;
   }