]> git.tuebingen.mpg.de Git - paraslash.git/blobdiff - mysql_selector.c
mysql selector: Fix a memory leak in get_query()
[paraslash.git] / mysql_selector.c
index 9f5a14f39854831faa238e8cb3d6363cb8d4f93d..c5f71cddab03614e699e02ad2c21d941196745c2 100644 (file)
@@ -1187,7 +1187,7 @@ static char *get_query(char *streamname, char *filename, int with_path)
                        free(tmp2);
                        continue;
                }
-               if (!strcmp(command, "score:"))
+               if (!score && !strcmp(command, "score:"))
                        score = s_a_r_list(macro_list, arg);
        }
        if (!score) {
@@ -1248,7 +1248,7 @@ out:
  * This is called from server and from some commands. Name must not be NULL
  * Never returns NULL.
  */
-static char *get_dbinfo(char *name)
+static char *get_selector_info(char *name)
 {
        char *meta = NULL, *atts = NULL, *info, *dir = NULL, *query, *stream = NULL;
        void *result = NULL;
@@ -1814,7 +1814,7 @@ static void update_mmd(char *info)
 static void update_audio_file_server_handler(char *name)
 {
        char *info;
-       info = get_dbinfo(name);
+       info = get_selector_info(name);
        update_mmd(info);
        free(info);
        update_audio_file(name);
@@ -1827,14 +1827,14 @@ static int com_us(__unused int fd, int argc, char *argv[])
        return update_audio_file(argv[1]);
 }
 
-static void refresh_mmd_dbinfo(void)
+static void refresh_selector_info(void)
 {
        char *name = get_current_audio_file();
        char *info;
 
        if (!name)
                return;
-       info = get_dbinfo(name);
+       info = get_selector_info(name);
        free(name);
        mmd_lock();
        update_mmd(info);
@@ -1901,7 +1901,7 @@ static int com_ps(__unused int fd, int argc, char *argv[])
                "'current_stream'", row[0]);
        ret = real_query(query);
        free(query);
-       refresh_mmd_dbinfo();
+       refresh_selector_info();
 out:
        free(stream);
        if (result)
@@ -2009,7 +2009,7 @@ static int com_cs(int fd, int argc, char *argv[])
                ret = change_stream(argv[1]);
                if (ret < 0)
                        goto out;
-               refresh_mmd_dbinfo();
+               refresh_selector_info();
        }
        if (csp) {
                mmd_lock();
@@ -2148,7 +2148,7 @@ no_more_atts:
                for (; argv[i] && ret >= 0; i++)
                        ret = update_atts(fd, argv[i], atts);
        }
-       refresh_mmd_dbinfo();
+       refresh_selector_info();
 out:
        return ret;
 }