audio/oss: fix buffer pos calculation
diff mbox series

Message ID 20200120101804.29578-1-kraxel@redhat.com
State New
Headers show
Series
  • audio/oss: fix buffer pos calculation
Related show

Commit Message

Gerd Hoffmann Jan. 20, 2020, 10:18 a.m. UTC
Fixes: 3ba4066d085f ("ossaudio: port to the new audio backend api")
Reported-by: ziming zhang <ezrakiez@gmail.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 audio/ossaudio.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Philippe Mathieu-Daudé Jan. 20, 2020, 11:12 a.m. UTC | #1
On 1/20/20 11:18 AM, Gerd Hoffmann wrote:
> Fixes: 3ba4066d085f ("ossaudio: port to the new audio backend api")
> Reported-by: ziming zhang <ezrakiez@gmail.com>
> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
> ---
>   audio/ossaudio.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/audio/ossaudio.c b/audio/ossaudio.c
> index c43faeeea4aa..94564916fbf0 100644
> --- a/audio/ossaudio.c
> +++ b/audio/ossaudio.c
> @@ -420,7 +420,7 @@ static size_t oss_write(HWVoiceOut *hw, void *buf, size_t len)
>               size_t to_copy = MIN(len, hw->size_emul - hw->pos_emul);
>               memcpy(hw->buf_emul + hw->pos_emul, buf, to_copy);
>   
> -            hw->pos_emul = (hw->pos_emul + to_copy) % hw->pos_emul;
> +            hw->pos_emul = (hw->pos_emul + to_copy) % hw->size_emul;

Interestingly oss_put_buffer_out() is correct.

Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>

>               buf += to_copy;
>               len -= to_copy;
>           }
>

Patch
diff mbox series

diff --git a/audio/ossaudio.c b/audio/ossaudio.c
index c43faeeea4aa..94564916fbf0 100644
--- a/audio/ossaudio.c
+++ b/audio/ossaudio.c
@@ -420,7 +420,7 @@  static size_t oss_write(HWVoiceOut *hw, void *buf, size_t len)
             size_t to_copy = MIN(len, hw->size_emul - hw->pos_emul);
             memcpy(hw->buf_emul + hw->pos_emul, buf, to_copy);
 
-            hw->pos_emul = (hw->pos_emul + to_copy) % hw->pos_emul;
+            hw->pos_emul = (hw->pos_emul + to_copy) % hw->size_emul;
             buf += to_copy;
             len -= to_copy;
         }