[pulseaudio-discuss] [PATCH v2 10/10] raop: Fix potential NULL dereference

Hajime Fujita crisp.fujita at nifty.com
Tue Mar 7 04:26:26 UTC 2017


> On Mar 6, 2017, at 1:43 AM, Peter Meerwald-Stadler <pmeerw at pmeerw.net> wrote:
> 
> 'realm' is mandatory
> 
> Signed-off-by: Peter Meerwald-Stadler <pmeerw at pmeerw.net>
> ---
> src/modules/raop/raop-client.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/src/modules/raop/raop-client.c b/src/modules/raop/raop-client.c
> index d329a09..5248691 100644
> --- a/src/modules/raop/raop-client.c
> +++ b/src/modules/raop/raop-client.c
> @@ -1254,13 +1254,13 @@ static void rtsp_auth_cb(pa_rtsp_client *rtsp, pa_rtsp_state_t state, pa_rtsp_st
>                     pa_xfree(token);
>                 }
> 
> -                if (pa_safe_streq(mth, "Basic")) {
> +                if (pa_safe_streq(mth, "Basic") && realm) {
>                     rtrim_char(realm, '\"’);

I would remove `rtrim_char(realm, '\"’);` from this block and keep the if condition as-is, since realm is not used later.

> 
>                     pa_raop_basic_response(DEFAULT_USER_NAME, c->password, &response);
>                     ath = pa_sprintf_malloc("Basic %s",
>                         response);
> -                } else if (pa_safe_streq(mth, "Digest")) {
> +                } else if (pa_safe_streq(mth, "Digest") && realm && nonce) {

Why don’t we do like this:
+                    if (realm == NULL) {
+                        pa_log_error("realm not provided");
+                        goto error;
+                    } else if (nonce == NULL) {
+                        pa_log_error("nonce not provided");
+                        goto error;
+                    }

>                     rtrim_char(realm, '\"');
>                     rtrim_char(nonce, '\"');
> 
> -- 
> 2.7.4
> 
> _______________________________________________
> pulseaudio-discuss mailing list
> pulseaudio-discuss at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss



More information about the pulseaudio-discuss mailing list