Changeset: 58d0e6a8ddd2 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=58d0e6a8ddd2
Modified Files:
        sql/src/server/rel_updates.mx
Branch: Oct2010
Log Message:

make sure we check the return value of realpath() to fix gcc compilation

TODO:
realpath() does not seem to exist on Windows ...


diffs (47 lines):

diff -r 0cae5a24c2c7 -r 58d0e6a8ddd2 sql/src/server/rel_updates.mx
--- a/sql/src/server/rel_updates.mx     Tue Dec 14 08:53:40 2010 +0100
+++ b/sql/src/server/rel_updates.mx     Tue Dec 14 09:15:30 2010 +0100
@@ -600,7 +600,10 @@
                                        "COPY INTO from file(s) requires 
administrator rights, "
                                        "use 'COPY INTO \"%s\" FROM STDIN' 
instead", tname);
 
-               realpath(GDKgetenv("gdk_dbfarm"), realdbfarm);
+               if (realpath(GDKgetenv("gdk_dbfarm"), realdbfarm) == NULL) {
+                       return sql_error(sql, 02, "COPY INTO: failed to get 
real path for dbfarm '%s'",
+                                       GDKgetenv("gdk_dbfarm"));
+               }
 
                for (; n; n = n->next) {
                        char *fname = n->data.sval;
@@ -609,7 +612,10 @@
                        if (fname && *fname != '/')
                                return sql_error(sql, 02, "COPY INTO: filename 
must "
                                                "have absolute path: %s", 
fname);
-                       realpath(fname, realfile);
+                       if (realpath(fname, realfile) == NULL) {
+                               return sql_error(sql, 02, "COPY INTO: failed to 
get real path for '%s'",
+                                               fname);
+                       }
                        if (strncmp(realdbfarm, realfile, strlen(realdbfarm)) 
== 0)
                                return sql_error(sql, 02, "COPY INTO: file may 
not "
                                                "reside in the server's dbfarm: 
%s", realfile);
@@ -754,11 +760,17 @@
                        return sql_error(sql, 02, "COPY INTO: insufficient 
privileges: "
                                        "COPY INTO file requires administrator 
rights, "
                                        "use 'COPY ... INTO STDOUT' instead");
-               realpath(GDKgetenv("gdk_dbfarm"), realdbfarm);
+               if (realpath(GDKgetenv("gdk_dbfarm"), realdbfarm) == NULL) {
+                       return sql_error(sql, 02, "COPY INTO: failed to get 
real path for dbfarm '%s'",
+                                       GDKgetenv("gdk_dbfarm"));
+               }
                if (filename && *filename != '/')
                        return sql_error(sql, 02, "COPY INTO: filename must "
                                        "have absolute path: %s", filename);
-               realpath(filename, realfile);
+               if (realpath(filename, realfile) == NULL) {
+                       return sql_error(sql, 02, "COPY INTO: failed to get 
real path for '%s'",
+                                       filename);
+               }
                if (strncmp(realdbfarm, realfile, strlen(realdbfarm)) == 0)
                        return sql_error(sql, 02, "COPY INTO: file may not "
                                        "reside in the server's dbfarm: %s", 
realfile);
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list

Reply via email to