[PATCH 4/7] Convert glx/single2.c:DoGetString() to use asprintf()

walter harms wharms at bfs.de
Wed Nov 2 04:54:00 PDT 2011



Am 01.11.2011 23:42, schrieb Alan Coopersmith:
> Signed-off-by: Alan Coopersmith <alan.coopersmith at oracle.com>
> ---
>  glx/single2.c |    4 +---
>  1 files changed, 1 insertions(+), 3 deletions(-)
> 
> diff --git a/glx/single2.c b/glx/single2.c
> index 9884f40..9f8254b 100644
> --- a/glx/single2.c
> +++ b/glx/single2.c
> @@ -351,12 +351,10 @@ int DoGetString(__GLXclientState *cl, GLbyte *pc, GLboolean need_swap)
>      }
>      else if ( name == GL_VERSION ) {
>  	if ( atof( string ) > atof( GLServerVersion ) ) {
> -	    buf = malloc( strlen( string ) + strlen( GLServerVersion ) + 4 );
> -	    if ( buf == NULL ) {
> +	    if ( asprintf( &buf, "%s (%s)", GLServerVersion, string ) == -1) {
>  		string = GLServerVersion;
>  	    }
>  	    else {
> -		sprintf( buf, "%s (%s)", GLServerVersion, string );
>  		string = buf;
>  	    }
>  	}

I am not sure that string = GLServerVersion in an OOM condition is the right idea.
Having an exit(1) gives the system a chance to recover.

re,
 wh


More information about the xorg-devel mailing list