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
signature.asc
Description: Digital signature

