server: Fix return value of com_ff(). maint
authorAndre Noll <maan@tuebingen.mpg.de>
Mon, 30 Apr 2018 19:18:01 +0000 (21:18 +0200)
committerAndre Noll <maan@tuebingen.mpg.de>
Mon, 30 Apr 2018 19:26:12 +0000 (21:26 +0200)
We set the VSS_NEXT flag if the amount of seconds to jump forward
would exceed the end of the current audio file. However, in this case
we fail the command by returning -E_NO_AUDIO_FILE, which is incorrect.

This bug was present since day one of the git repo (2006).

command.c

index fe4b923..6777ccc 100644 (file)
--- a/command.c
+++ b/command.c
@@ -728,6 +728,7 @@ static int com_ff(struct command_context *cc)
        ret = -E_NO_AUDIO_FILE;
        if (!mmd->afd.afhi.chunks_total || !mmd->afd.afhi.seconds_total)
                goto out;
+       ret = 1;
        promille = (1000 * mmd->current_chunk) / mmd->afd.afhi.chunks_total;
        if (backwards)
                promille -= 1000 * i / mmd->afd.afhi.seconds_total;
@@ -743,7 +744,6 @@ static int com_ff(struct command_context *cc)
        mmd->new_vss_status_flags |= VSS_REPOS;
        mmd->new_vss_status_flags &= ~VSS_NEXT;
        mmd->events++;
-       ret = 1;
 out:
        mutex_unlock(mmd_mutex);
        return ret;