[PATCH:libX11 03/12] udcInf.c: convert sprintf calls to snprintf

Matthieu Herrb matthieu.herrb at laas.fr
Sun Aug 11 02:52:20 PDT 2013


On Sat, Aug 10, 2013 at 01:55:00PM -0700, Alan Coopersmith wrote:
> Signed-off-by: Alan Coopersmith <alan.coopersmith at oracle.com>
Reviewed-by: Matthieu Herrb <matthieu.herrb at laas.fr> 

See also comment on last chunk.
> ---
>  src/udcInf.c |   24 ++++++++++++------------
>  1 file changed, 12 insertions(+), 12 deletions(-)
> 
> diff --git a/src/udcInf.c b/src/udcInf.c
> index 9ecf156..faec421 100644
> --- a/src/udcInf.c
> +++ b/src/udcInf.c
> @@ -131,7 +131,7 @@ int  *num_codeset;
>  
>      for(num=0;;num++){
>          /* XLC_FONTSET */
> -        sprintf(buf, "fs%d.font.primary", num);
> +        snprintf(buf, sizeof(buf), "fs%d.font.primary", num);
>          _XlcGetLocaleDataBase(lcd, "XLC_FONTSET", buf, &value, &count);
>          if(count < 1){
>              break ;
> @@ -268,7 +268,7 @@ int  *num_gr;
>      udc = NULL;
>  
>          /* XLC_FONTSET */
> -        sprintf(buf, "fs%d.charset.udc_area", codeset-1);
> +        snprintf(buf, sizeof(buf), "fs%d.charset.udc_area", codeset-1);
>          _XlcGetLocaleDataBase(lcd, "XLC_FONTSET", buf, &value, &count);
>          if(count > 0){
>              udc = Xmalloc(count * sizeof(_XUDCGlyphRegion));
> @@ -284,7 +284,7 @@ int  *num_gr;
>  
>      *num_gr = count;
>  
> -        sprintf(buf, "fs%d.font.primary", codeset-1);
> +        snprintf(buf, sizeof(buf), "fs%d.font.primary", codeset-1);
>          _XlcGetLocaleDataBase(lcd, "XLC_FONTSET", buf, &value, &count);
>          if(count > 0){
>  	    font_data = read_EncodingInfo(count,value);
> @@ -330,14 +330,14 @@ int	size;
>      FontData font_data;
>  
>  
> -    sprintf(buf, "fs%d.charset.name", codeset-1);
> +    snprintf(buf, sizeof(buf), "fs%d.charset.name", codeset-1);
>      _XlcGetLocaleDataBase(lcd, "XLC_FONTSET", buf, &value, &count);
>      if(count > 0){
>          strcpy(charsetname,value[0]);
>      }
>      if (count >= size)
>  	return False;
> -    sprintf(buf, "fs%d.font.primary", codeset-1);
> +    snprintf(buf, sizeof(buf), "fs%d.font.primary", codeset-1);
>      _XlcGetLocaleDataBase(lcd, "XLC_FONTSET", buf, &value, &count);
>      if(count > 0){
>  	font_data = read_EncodingInfo(count,value);
> @@ -369,7 +369,7 @@ XlcCharSet 	charset;
>              return(False);
>      }
>      for(i=0;;i++){
> -	sprintf(buf, "csd%d.charset_name", i);
> +	snprintf(buf, sizeof(buf), "csd%d.charset_name", i);
>  	_XlcGetLocaleDataBase(lcd, "XLC_CHARSET_DEFINE", buf, &value, &count);
>  	if(count > 0){
>  	    if(!_XlcNCompareISOLatin1(value[0],
> @@ -463,9 +463,9 @@ unsigned long 	*codepoint;
>      } else if(charset->ct_sequence){
>  	if (strlen(charset->ct_sequence) + strlen(src) >= sizeof(from32))
>  	    return(_XUDC_ERROR);
> -        sprintf((char *)from,"%s%s",charset->ct_sequence,src);
> +        snprintf((char *)from,sizeof(from32),"%s%s",charset->ct_sequence,src);
>      } else {
> -        sprintf((char *)from,"%s\0",src);
> +        snprintf((char *)from,sizeof(from32),"%s\0",src);
>      }
>      /* compound text -> multi byte */
>      conv = _XlcOpenConverter(lcd, XlcNCompoundText, lcd, XlcNMultiByte);
> @@ -604,7 +604,7 @@ int	size;
>  
>  
>      for(i=0;;i++){
> -        sprintf(buf, "fs%d.charset.name",i);
> +        snprintf(buf, sizeof(buf), "fs%d.charset.name",i);
>          _XlcGetLocaleDataBase(lcd, "XLC_FONTSET", buf, &value, &count);
>          if(count > 0){
>              if(!_XlcNCompareISOLatin1(charset->name,value[0],
> @@ -617,13 +617,13 @@ int	size;
>  	}
>      }
>  /*
> -    sprintf(buf, "fs%d.charset.name", codeset-1);
> +    snprintf(buf, sizeof(buf), "fs%d.charset.name", codeset-1);
>      _XlcGetLocaleDataBase(lcd, "XLC_FONTSET", buf, &value, &count);
>      if(count > 0){
>          strcpy(charsetname,value[0]);
>      }
>  */
> -    sprintf(buf, "fs%d.font.primary", i);
> +    snprintf(buf, sizeof(buf), "fs%d.font.primary", i);
>      _XlcGetLocaleDataBase(lcd, "XLC_FONTSET", buf, &value, &count);
>      if(count > 0){
>  	font_data = read_EncodingInfo(count,value);
> @@ -677,7 +677,7 @@ int 		*num_gi;
>  	}
>      }
>      src[j] = 0;
> -    sprintf((char *)from,"%s\0",src);
> +    snprintf((char *)from, sizeof(from32), "%s\0", src);
>      /* multi byte -> vgi */
>      conv = _XlcOpenConverter(lcd, XlcNMultiByte, lcd, XlcNCharSet);
>      from_left = strlen((char *)from);

I have the impression that from could be changed to 'char *' in
_xudc_code_to_glyph(), eliminating a few casts. 

> -- 
> 1.7.9.2
> 
> _______________________________________________
> xorg-devel at lists.x.org: X.Org development
> Archives: http://lists.x.org/archives/xorg-devel
> Info: http://lists.x.org/mailman/listinfo/xorg-devel

-- 
Matthieu Herrb


More information about the xorg-devel mailing list