Changeset: 2ad0e916de12 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=2ad0e916de12
Modified Files:
        MonetDB.spec
        buildtools/selinux/monetdb.te
        sql/backends/monet5/sql_execute.c
        tools/merovingian/daemon/config/monetdbd.service.in
Branch: Apr2019
Log Message:

Merge with Aug2018 branch.


diffs (79 lines):

diff --git a/MonetDB.spec b/MonetDB.spec
--- a/MonetDB.spec
+++ b/MonetDB.spec
@@ -895,7 +895,10 @@ automatic index management, extensibilit
 accelerators.  It also has an SQL frontend.
 
 This package contains the SELinux policy for running MonetDB under
-control of systemd.
+control of systemd.  There is one tunable parameter, mserver5_can_read_home,
+which can be set using "setsebool -P mserver5_can_read_home=true" to allow
+an mserver5 process started by monetdbd under the control of systemd to
+read files in users' home directories.
 
 %post selinux
 for selinuxvariant in %{selinux_variants}
diff --git a/buildtools/selinux/monetdb.te b/buildtools/selinux/monetdb.te
--- a/buildtools/selinux/monetdb.te
+++ b/buildtools/selinux/monetdb.te
@@ -1,4 +1,4 @@
-policy_module(monetdb, 0.3)
+policy_module(monetdb, 0.4)
 # The above line declares that this file is a SELinux policy file. Its
 # name is monetdb, so the file should be saved as monetdb.te
 
@@ -7,6 +7,7 @@ require {
        type proc_net_t;
        type tmp_t;
        type var_t;
+       type user_home_t;
        class dir { read };
        class fd { use };
        class fifo_file { getattr read write };
@@ -119,4 +120,9 @@ manage_sock_files_pattern(mserver5_t, ms
 allow mserver5_t monetdbd_t:fifo_file { read write getattr };
 allow mserver5_t monetdbd_t:unix_stream_socket { read write getopt shutdown };
 allow mserver5_t var_t:dir { read };
+gen_tunable(mserver5_can_read_home, false)
+tunable_policy(`mserver5_can_read_home', `
+    userdom_search_user_home_dirs(mserver5_t)
+    allow mserver5_t user_home_t:file read_file_perms;
+')
 allow monetdbd_t mserver5_t:unix_stream_socket { connectto };
diff --git a/sql/backends/monet5/sql_execute.c 
b/sql/backends/monet5/sql_execute.c
--- a/sql/backends/monet5/sql_execute.c
+++ b/sql/backends/monet5/sql_execute.c
@@ -622,13 +622,19 @@ SQLstatementIntern(Client c, str *expr, 
 
                if (err || c->curprg->def->errors || msg) {
                        /* restore the state */
+                       char *error = NULL;
                        MSresetInstructions(c->curprg->def, oldstop);
                        freeVariables(c, c->curprg->def, c->glb, oldvtop);
                        c->curprg->def->errors = 0;
                        if (strlen(m->errstr) > 6 && m->errstr[5] == '!')
-                               msg = createException(PARSE, "SQLparser", "%s", 
m->errstr);
+                               error = createException(PARSE, "SQLparser", 
"%s", m->errstr);
+                       else if (*m->errstr)
+                               error = createException(PARSE, "SQLparser", 
SQLSTATE(42000) "%s", m->errstr);
                        else
-                               msg = createException(PARSE, "SQLparser", 
SQLSTATE(42000) "%s", m->errstr);
+                               error = createException(PARSE, "SQLparser", 
SQLSTATE(42000) "%s", msg);
+                       if (msg)
+                               freeException(msg);
+                       msg = error;
                        *m->errstr = 0;
                        goto endofcompile;
                }
diff --git a/tools/merovingian/daemon/config/monetdbd.service.in 
b/tools/merovingian/daemon/config/monetdbd.service.in
--- a/tools/merovingian/daemon/config/monetdbd.service.in
+++ b/tools/merovingian/daemon/config/monetdbd.service.in
@@ -13,7 +13,7 @@ Restart=on-failure
 PIDFile=@Erundir@/merovingian.pid
 PrivateDevices=no
 ProtectSystem=full
-ProtectHome=true
+ProtectHome=read-only
 
 [Install]
 WantedBy=multi-user.target
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to