mysql.c: Fix boolean logig bug
[paraslash.git] / mysql_selector.c
index 45a10bac0e9264e96b38dda81b7233370c02958e..7a3b0a7d9c5b99d55c3e094ed497126805f927f2 100644 (file)
@@ -31,6 +31,7 @@
 #include "error.h"
 #include "net.h"
 #include "string.h"
+#include "user_list.h"
 
 /** pointer to the shared memory area */
 extern struct misc_meta_data *mmd;
@@ -1501,11 +1502,11 @@ static int com_mv(__a_unused int fd, int argc, char *argv[])
        ret = -E_ESCAPE;
        ebn1 = escaped_basename(argv[1]);
        ebn2 = escaped_basename(argv[2]);
-       if (!ebn1 || !ebn2 | !*ebn1 || !*ebn2)
+       if (!ebn1 || !ebn2 || !*ebn1 || !*ebn2)
                goto out;
        ret = -E_MYSQL_SYNTAX;
        if (!strcmp(ebn1, ebn2))
-               goto out;
+               goto update_dir;
        remove_entry(argv[2]); /* no need to escape, ignore error */
        q = make_message("update data set name = '%s' where name = '%s'",
                ebn2, ebn1);
@@ -1522,6 +1523,7 @@ static int com_mv(__a_unused int fd, int argc, char *argv[])
        free(q);
        if (ret < 0)
                goto out;
+update_dir:
        ret = 1;
        dn = para_dirname(argv[2]);
        if (!dn)