Hi Pedro,

thank you for reporting this security issue.

On 2013-08-04 10:35:46, Pedro R wrote:
> diff -urb lcms-1.19.dfsg/samples/icctrans.c 
> lcms-1.19.dfsg-patched/samples/icctrans.c
> --- lcms-1.19.dfsg/samples/icctrans.c 2009-10-30 15:57:45.000000000 +0000
> +++ lcms-1.19.dfsg-patched/samples/icctrans.c 2013-08-04 10:31:36.608445149 
> +0100
> @@ -500,7 +500,7 @@
>  
>      Prefix[0] = 0;
>      if (!lTerse)
> -        sprintf(Prefix, "%s=", C);
> +        snprintf(Prefix, 20, "%s=", C);
>  
>      if (InHexa)
>      {
> @@ -648,7 +648,9 @@
>  static
>  void GetLine(char* Buffer)
>  {    
> -    scanf("%s", Buffer);
> +    size_t Buffer_size = sizeof(Buffer);
> +    fgets(Buffer, (Buffer_size - 1), stdin);
> +    sscanf("%s", Buffer);

This sscanf call is wrong and introduces a format string vulnerability.
sscanf's signature is int sscanf(const char* str, const char* fmt, ...)
where str is used as input and format is the second argument.

Regards
-- 
Sebastian Ramacher

Attachment: signature.asc
Description: Digital signature

Reply via email to