You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
808 lines
35 KiB
808 lines
35 KiB
# --- SDE-COPYRIGHT-NOTE-BEGIN --- |
|
# This copyright note is auto-generated by ./scripts/Create-CopyPatch. |
|
# |
|
# Filename: package/.../libtiff/libtiff-4.0.3-0102-CVE-2013-1961.patch |
|
# Copyright (C) 2013 The OpenSDE Project |
|
# |
|
# More information can be found in the files COPYING and README. |
|
# |
|
# This patch file is dual-licensed. It is available under the license the |
|
# patched project is licensed under, as long as it is an OpenSource license |
|
# as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms |
|
# of the GNU General Public License as published by the Free Software |
|
# Foundation; either version 2 of the License, or (at your option) any later |
|
# version. |
|
# --- SDE-COPYRIGHT-NOTE-END --- |
|
|
|
From a3da4adee9c2e37cf0df346671e02f53587ae401 Mon Sep 17 00:00:00 2001 |
|
From: tgl <tgl> |
|
Date: Thu, 2 May 2013 14:44:29 +0000 |
|
Subject: [PATCH] Replace sprintf with snprintf, to fix CVE-2013-1961 |
|
|
|
original ChangeLog entry: |
|
---------------------------------------------------------------------------- |
|
2013-05-02 Tom Lane <tgl@sss.pgh.pa.us> |
|
|
|
* contrib/dbs/xtiff/xtiff.c, libtiff/tif_codec.c, |
|
libtiff/tif_dirinfo.c, tools/rgb2ycbcr.c, tools/tiff2bw.c, |
|
tools/tiff2pdf.c, tools/tiff2ps.c, tools/tiffcrop.c, |
|
tools/tiffdither.c: Enlarge some fixed-size buffers that weren't |
|
large enough, and eliminate substantially all uses of sprintf(buf, |
|
...) in favor of using snprintf(buf, sizeof(buf), ...), so as to |
|
protect against overflow of fixed-size buffers. This responds in |
|
particular to CVE-2013-1961 concerning overflow in tiff2pdf.c's |
|
t2p_write_pdf_page(), but in general it seems like a good idea to |
|
deprecate use of sprintf(). |
|
---------------------------------------------------------------------------- |
|
|
|
diff --git a/contrib/dbs/xtiff/xtiff.c b/contrib/dbs/xtiff/xtiff.c |
|
index 82541b6..16f77e0 100644 |
|
--- a/contrib/dbs/xtiff/xtiff.c |
|
+++ b/contrib/dbs/xtiff/xtiff.c |
|
@@ -512,9 +512,9 @@ SetNameLabel() |
|
Arg args[1]; |
|
|
|
if (tfMultiPage) |
|
- sprintf(buffer, "%s - page %d", fileName, tfDirectory); |
|
+ snprintf(buffer, sizeof(buffer), "%s - page %d", fileName, tfDirectory); |
|
else |
|
- strcpy(buffer, fileName); |
|
+ snprintf(buffer, sizeof(buffer), "%s", fileName); |
|
XtSetArg(args[0], XtNlabel, buffer); |
|
XtSetValues(labelWidget, args, 1); |
|
} |
|
diff --git a/libtiff/tif_codec.c b/libtiff/tif_codec.c |
|
index 4a9abe3..4041570 100644 |
|
--- a/libtiff/tif_codec.c |
|
+++ b/libtiff/tif_codec.c |
|
@@ -108,7 +108,8 @@ _notConfigured(TIFF* tif) |
|
const TIFFCodec* c = TIFFFindCODEC(tif->tif_dir.td_compression); |
|
char compression_code[20]; |
|
|
|
- sprintf( compression_code, "%d", tif->tif_dir.td_compression ); |
|
+ snprintf(compression_code, sizeof(compression_code), "%d", |
|
+ tif->tif_dir.td_compression ); |
|
TIFFErrorExt(tif->tif_clientdata, tif->tif_name, |
|
"%s compression support is not configured", |
|
c ? c->name : compression_code ); |
|
diff --git a/libtiff/tif_dirinfo.c b/libtiff/tif_dirinfo.c |
|
index c1d4c74..16eb875 100644 |
|
--- a/libtiff/tif_dirinfo.c |
|
+++ b/libtiff/tif_dirinfo.c |
|
@@ -711,7 +711,7 @@ _TIFFCreateAnonField(TIFF *tif, uint32 tag, TIFFDataType field_type) |
|
* note that this name is a special sign to TIFFClose() and |
|
* _TIFFSetupFields() to free the field |
|
*/ |
|
- sprintf(fld->field_name, "Tag %d", (int) tag); |
|
+ snprintf(fld->field_name, 32, "Tag %d", (int) tag); |
|
|
|
return fld; |
|
} |
|
diff --git a/tools/rgb2ycbcr.c b/tools/rgb2ycbcr.c |
|
index 06aa881..c2d83be 100644 |
|
--- a/tools/rgb2ycbcr.c |
|
+++ b/tools/rgb2ycbcr.c |
|
@@ -332,7 +332,8 @@ tiffcvt(TIFF* in, TIFF* out) |
|
TIFFSetField(out, TIFFTAG_PLANARCONFIG, PLANARCONFIG_CONTIG); |
|
{ char buf[2048]; |
|
char *cp = strrchr(TIFFFileName(in), '/'); |
|
- sprintf(buf, "YCbCr conversion of %s", cp ? cp+1 : TIFFFileName(in)); |
|
+ snprintf(buf, sizeof(buf), "YCbCr conversion of %s", |
|
+ cp ? cp+1 : TIFFFileName(in)); |
|
TIFFSetField(out, TIFFTAG_IMAGEDESCRIPTION, buf); |
|
} |
|
TIFFSetField(out, TIFFTAG_SOFTWARE, TIFFGetVersion()); |
|
diff --git a/tools/tiff2bw.c b/tools/tiff2bw.c |
|
index 8d16b29..22467cd 100644 |
|
--- a/tools/tiff2bw.c |
|
+++ b/tools/tiff2bw.c |
|
@@ -205,7 +205,7 @@ main(int argc, char* argv[]) |
|
} |
|
} |
|
TIFFSetField(out, TIFFTAG_PHOTOMETRIC, PHOTOMETRIC_MINISBLACK); |
|
- sprintf(thing, "B&W version of %s", argv[optind]); |
|
+ snprintf(thing, sizeof(thing), "B&W version of %s", argv[optind]); |
|
TIFFSetField(out, TIFFTAG_IMAGEDESCRIPTION, thing); |
|
TIFFSetField(out, TIFFTAG_SOFTWARE, "tiff2bw"); |
|
outbuf = (unsigned char *)_TIFFmalloc(TIFFScanlineSize(out)); |
|
diff --git a/tools/tiff2pdf.c b/tools/tiff2pdf.c |
|
index b9a6075..6b0d021 100644 |
|
--- a/tools/tiff2pdf.c |
|
+++ b/tools/tiff2pdf.c |
|
@@ -3609,7 +3609,9 @@ tsize_t t2p_write_pdf_header(T2P* t2p, TIFF* output){ |
|
char buffer[16]; |
|
int buflen=0; |
|
|
|
- buflen=sprintf(buffer, "%%PDF-%u.%u ", t2p->pdf_majorversion&0xff, t2p->pdf_minorversion&0xff); |
|
+ buflen = snprintf(buffer, sizeof(buffer), "%%PDF-%u.%u ", |
|
+ t2p->pdf_majorversion&0xff, |
|
+ t2p->pdf_minorversion&0xff); |
|
written += t2pWriteFile(output, (tdata_t) buffer, buflen); |
|
written += t2pWriteFile(output, (tdata_t)"\n%\342\343\317\323\n", 7); |
|
|
|
@@ -3623,10 +3625,10 @@ tsize_t t2p_write_pdf_header(T2P* t2p, TIFF* output){ |
|
tsize_t t2p_write_pdf_obj_start(uint32 number, TIFF* output){ |
|
|
|
tsize_t written=0; |
|
- char buffer[16]; |
|
+ char buffer[32]; |
|
int buflen=0; |
|
|
|
- buflen=sprintf(buffer, "%lu", (unsigned long)number); |
|
+ buflen=snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)number); |
|
written += t2pWriteFile(output, (tdata_t) buffer, buflen ); |
|
written += t2pWriteFile(output, (tdata_t) " 0 obj\n", 7); |
|
|
|
@@ -3665,13 +3667,13 @@ tsize_t t2p_write_pdf_name(unsigned char* name, TIFF* output){ |
|
written += t2pWriteFile(output, (tdata_t) "/", 1); |
|
for (i=0;i<namelen;i++){ |
|
if ( ((unsigned char)name[i]) < 0x21){ |
|
- sprintf(buffer, "#%.2X", name[i]); |
|
+ snprintf(buffer, sizeof(buffer), "#%.2X", name[i]); |
|
buffer[sizeof(buffer) - 1] = '\0'; |
|
written += t2pWriteFile(output, (tdata_t) buffer, 3); |
|
nextchar=1; |
|
} |
|
if ( ((unsigned char)name[i]) > 0x7E){ |
|
- sprintf(buffer, "#%.2X", name[i]); |
|
+ snprintf(buffer, sizeof(buffer), "#%.2X", name[i]); |
|
buffer[sizeof(buffer) - 1] = '\0'; |
|
written += t2pWriteFile(output, (tdata_t) buffer, 3); |
|
nextchar=1; |
|
@@ -3679,57 +3681,57 @@ tsize_t t2p_write_pdf_name(unsigned char* name, TIFF* output){ |
|
if (nextchar==0){ |
|
switch (name[i]){ |
|
case 0x23: |
|
- sprintf(buffer, "#%.2X", name[i]); |
|
+ snprintf(buffer, sizeof(buffer), "#%.2X", name[i]); |
|
buffer[sizeof(buffer) - 1] = '\0'; |
|
written += t2pWriteFile(output, (tdata_t) buffer, 3); |
|
break; |
|
case 0x25: |
|
- sprintf(buffer, "#%.2X", name[i]); |
|
+ snprintf(buffer, sizeof(buffer), "#%.2X", name[i]); |
|
buffer[sizeof(buffer) - 1] = '\0'; |
|
written += t2pWriteFile(output, (tdata_t) buffer, 3); |
|
break; |
|
case 0x28: |
|
- sprintf(buffer, "#%.2X", name[i]); |
|
+ snprintf(buffer, sizeof(buffer), "#%.2X", name[i]); |
|
buffer[sizeof(buffer) - 1] = '\0'; |
|
written += t2pWriteFile(output, (tdata_t) buffer, 3); |
|
break; |
|
case 0x29: |
|
- sprintf(buffer, "#%.2X", name[i]); |
|
+ snprintf(buffer, sizeof(buffer), "#%.2X", name[i]); |
|
buffer[sizeof(buffer) - 1] = '\0'; |
|
written += t2pWriteFile(output, (tdata_t) buffer, 3); |
|
break; |
|
case 0x2F: |
|
- sprintf(buffer, "#%.2X", name[i]); |
|
+ snprintf(buffer, sizeof(buffer), "#%.2X", name[i]); |
|
buffer[sizeof(buffer) - 1] = '\0'; |
|
written += t2pWriteFile(output, (tdata_t) buffer, 3); |
|
break; |
|
case 0x3C: |
|
- sprintf(buffer, "#%.2X", name[i]); |
|
+ snprintf(buffer, sizeof(buffer), "#%.2X", name[i]); |
|
buffer[sizeof(buffer) - 1] = '\0'; |
|
written += t2pWriteFile(output, (tdata_t) buffer, 3); |
|
break; |
|
case 0x3E: |
|
- sprintf(buffer, "#%.2X", name[i]); |
|
+ snprintf(buffer, sizeof(buffer), "#%.2X", name[i]); |
|
buffer[sizeof(buffer) - 1] = '\0'; |
|
written += t2pWriteFile(output, (tdata_t) buffer, 3); |
|
break; |
|
case 0x5B: |
|
- sprintf(buffer, "#%.2X", name[i]); |
|
+ snprintf(buffer, sizeof(buffer), "#%.2X", name[i]); |
|
buffer[sizeof(buffer) - 1] = '\0'; |
|
written += t2pWriteFile(output, (tdata_t) buffer, 3); |
|
break; |
|
case 0x5D: |
|
- sprintf(buffer, "#%.2X", name[i]); |
|
+ snprintf(buffer, sizeof(buffer), "#%.2X", name[i]); |
|
buffer[sizeof(buffer) - 1] = '\0'; |
|
written += t2pWriteFile(output, (tdata_t) buffer, 3); |
|
break; |
|
case 0x7B: |
|
- sprintf(buffer, "#%.2X", name[i]); |
|
+ snprintf(buffer, sizeof(buffer), "#%.2X", name[i]); |
|
buffer[sizeof(buffer) - 1] = '\0'; |
|
written += t2pWriteFile(output, (tdata_t) buffer, 3); |
|
break; |
|
case 0x7D: |
|
- sprintf(buffer, "#%.2X", name[i]); |
|
+ snprintf(buffer, sizeof(buffer), "#%.2X", name[i]); |
|
buffer[sizeof(buffer) - 1] = '\0'; |
|
written += t2pWriteFile(output, (tdata_t) buffer, 3); |
|
break; |
|
@@ -3844,14 +3846,14 @@ tsize_t t2p_write_pdf_stream_end(TIFF* output){ |
|
tsize_t t2p_write_pdf_stream_dict(tsize_t len, uint32 number, TIFF* output){ |
|
|
|
tsize_t written=0; |
|
- char buffer[16]; |
|
+ char buffer[32]; |
|
int buflen=0; |
|
|
|
written += t2pWriteFile(output, (tdata_t) "/Length ", 8); |
|
if(len!=0){ |
|
written += t2p_write_pdf_stream_length(len, output); |
|
} else { |
|
- buflen=sprintf(buffer, "%lu", (unsigned long)number); |
|
+ buflen=snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)number); |
|
written += t2pWriteFile(output, (tdata_t) buffer, buflen); |
|
written += t2pWriteFile(output, (tdata_t) " 0 R \n", 6); |
|
} |
|
@@ -3892,10 +3894,10 @@ tsize_t t2p_write_pdf_stream_dict_end(TIFF* output){ |
|
tsize_t t2p_write_pdf_stream_length(tsize_t len, TIFF* output){ |
|
|
|
tsize_t written=0; |
|
- char buffer[16]; |
|
+ char buffer[32]; |
|
int buflen=0; |
|
|
|
- buflen=sprintf(buffer, "%lu", (unsigned long)len); |
|
+ buflen=snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)len); |
|
written += t2pWriteFile(output, (tdata_t) buffer, buflen); |
|
written += t2pWriteFile(output, (tdata_t) "\n", 1); |
|
|
|
@@ -3909,7 +3911,7 @@ tsize_t t2p_write_pdf_stream_length(tsize_t len, TIFF* output){ |
|
tsize_t t2p_write_pdf_catalog(T2P* t2p, TIFF* output) |
|
{ |
|
tsize_t written = 0; |
|
- char buffer[16]; |
|
+ char buffer[32]; |
|
int buflen = 0; |
|
|
|
written += t2pWriteFile(output, |
|
@@ -3948,7 +3950,6 @@ tsize_t t2p_write_pdf_info(T2P* t2p, TIFF* input, TIFF* output) |
|
written += t2p_write_pdf_string(t2p->pdf_datetime, output); |
|
} |
|
written += t2pWriteFile(output, (tdata_t) "\n/Producer ", 11); |
|
- _TIFFmemset((tdata_t)buffer, 0x00, sizeof(buffer)); |
|
snprintf(buffer, sizeof(buffer), "libtiff / tiff2pdf - %d", TIFFLIB_VERSION); |
|
written += t2p_write_pdf_string(buffer, output); |
|
written += t2pWriteFile(output, (tdata_t) "\n", 1); |
|
@@ -4089,7 +4090,7 @@ tsize_t t2p_write_pdf_pages(T2P* t2p, TIFF* output) |
|
{ |
|
tsize_t written=0; |
|
tdir_t i=0; |
|
- char buffer[16]; |
|
+ char buffer[32]; |
|
int buflen=0; |
|
|
|
int page=0; |
|
@@ -4097,7 +4098,7 @@ tsize_t t2p_write_pdf_pages(T2P* t2p, TIFF* output) |
|
(tdata_t) "<< \n/Type /Pages \n/Kids [ ", 26); |
|
page = t2p->pdf_pages+1; |
|
for (i=0;i<t2p->tiff_pagecount;i++){ |
|
- buflen=sprintf(buffer, "%d", page); |
|
+ buflen=snprintf(buffer, sizeof(buffer), "%d", page); |
|
written += t2pWriteFile(output, (tdata_t) buffer, buflen); |
|
written += t2pWriteFile(output, (tdata_t) " 0 R ", 5); |
|
if ( ((i+1)%8)==0 ) { |
|
@@ -4112,8 +4113,7 @@ tsize_t t2p_write_pdf_pages(T2P* t2p, TIFF* output) |
|
} |
|
} |
|
written += t2pWriteFile(output, (tdata_t) "] \n/Count ", 10); |
|
- _TIFFmemset(buffer, 0x00, 16); |
|
- buflen=sprintf(buffer, "%d", t2p->tiff_pagecount); |
|
+ buflen=snprintf(buffer, sizeof(buffer), "%d", t2p->tiff_pagecount); |
|
written += t2pWriteFile(output, (tdata_t) buffer, buflen); |
|
written += t2pWriteFile(output, (tdata_t) " \n>> \n", 6); |
|
|
|
@@ -4128,28 +4128,28 @@ tsize_t t2p_write_pdf_page(uint32 object, T2P* t2p, TIFF* output){ |
|
|
|
unsigned int i=0; |
|
tsize_t written=0; |
|
- char buffer[16]; |
|
+ char buffer[256]; |
|
int buflen=0; |
|
|
|
written += t2pWriteFile(output, (tdata_t) "<<\n/Type /Page \n/Parent ", 24); |
|
- buflen=sprintf(buffer, "%lu", (unsigned long)t2p->pdf_pages); |
|
+ buflen=snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)t2p->pdf_pages); |
|
written += t2pWriteFile(output, (tdata_t) buffer, buflen); |
|
written += t2pWriteFile(output, (tdata_t) " 0 R \n", 6); |
|
written += t2pWriteFile(output, (tdata_t) "/MediaBox [", 11); |
|
- buflen=sprintf(buffer, "%.4f",t2p->pdf_mediabox.x1); |
|
+ buflen=snprintf(buffer, sizeof(buffer), "%.4f",t2p->pdf_mediabox.x1); |
|
written += t2pWriteFile(output, (tdata_t) buffer, buflen); |
|
written += t2pWriteFile(output, (tdata_t) " ", 1); |
|
- buflen=sprintf(buffer, "%.4f",t2p->pdf_mediabox.y1); |
|
+ buflen=snprintf(buffer, sizeof(buffer), "%.4f",t2p->pdf_mediabox.y1); |
|
written += t2pWriteFile(output, (tdata_t) buffer, buflen); |
|
written += t2pWriteFile(output, (tdata_t) " ", 1); |
|
- buflen=sprintf(buffer, "%.4f",t2p->pdf_mediabox.x2); |
|
+ buflen=snprintf(buffer, sizeof(buffer), "%.4f",t2p->pdf_mediabox.x2); |
|
written += t2pWriteFile(output, (tdata_t) buffer, buflen); |
|
written += t2pWriteFile(output, (tdata_t) " ", 1); |
|
- buflen=sprintf(buffer, "%.4f",t2p->pdf_mediabox.y2); |
|
+ buflen=snprintf(buffer, sizeof(buffer), "%.4f",t2p->pdf_mediabox.y2); |
|
written += t2pWriteFile(output, (tdata_t) buffer, buflen); |
|
written += t2pWriteFile(output, (tdata_t) "] \n", 3); |
|
written += t2pWriteFile(output, (tdata_t) "/Contents ", 10); |
|
- buflen=sprintf(buffer, "%lu", (unsigned long)(object + 1)); |
|
+ buflen=snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)(object + 1)); |
|
written += t2pWriteFile(output, (tdata_t) buffer, buflen); |
|
written += t2pWriteFile(output, (tdata_t) " 0 R \n", 6); |
|
written += t2pWriteFile(output, (tdata_t) "/Resources << \n", 15); |
|
@@ -4157,15 +4157,13 @@ tsize_t t2p_write_pdf_page(uint32 object, T2P* t2p, TIFF* output){ |
|
written += t2pWriteFile(output, (tdata_t) "/XObject <<\n", 12); |
|
for(i=0;i<t2p->tiff_tiles[t2p->pdf_page].tiles_tilecount;i++){ |
|
written += t2pWriteFile(output, (tdata_t) "/Im", 3); |
|
- buflen = sprintf(buffer, "%u", t2p->pdf_page+1); |
|
+ buflen = snprintf(buffer, sizeof(buffer), "%u", t2p->pdf_page+1); |
|
written += t2pWriteFile(output, (tdata_t) buffer, buflen); |
|
written += t2pWriteFile(output, (tdata_t) "_", 1); |
|
- buflen = sprintf(buffer, "%u", i+1); |
|
+ buflen = snprintf(buffer, sizeof(buffer), "%u", i+1); |
|
written += t2pWriteFile(output, (tdata_t) buffer, buflen); |
|
written += t2pWriteFile(output, (tdata_t) " ", 1); |
|
- buflen = sprintf( |
|
- buffer, |
|
- "%lu", |
|
+ buflen = snprintf(buffer, sizeof(buffer), "%lu", |
|
(unsigned long)(object+3+(2*i)+t2p->tiff_pages[t2p->pdf_page].page_extra)); |
|
written += t2pWriteFile(output, (tdata_t) buffer, buflen); |
|
written += t2pWriteFile(output, (tdata_t) " 0 R ", 5); |
|
@@ -4177,12 +4175,10 @@ tsize_t t2p_write_pdf_page(uint32 object, T2P* t2p, TIFF* output){ |
|
} else { |
|
written += t2pWriteFile(output, (tdata_t) "/XObject <<\n", 12); |
|
written += t2pWriteFile(output, (tdata_t) "/Im", 3); |
|
- buflen = sprintf(buffer, "%u", t2p->pdf_page+1); |
|
+ buflen = snprintf(buffer, sizeof(buffer), "%u", t2p->pdf_page+1); |
|
written += t2pWriteFile(output, (tdata_t) buffer, buflen); |
|
written += t2pWriteFile(output, (tdata_t) " ", 1); |
|
- buflen = sprintf( |
|
- buffer, |
|
- "%lu", |
|
+ buflen = snprintf(buffer, sizeof(buffer), "%lu", |
|
(unsigned long)(object+3+(2*i)+t2p->tiff_pages[t2p->pdf_page].page_extra)); |
|
written += t2pWriteFile(output, (tdata_t) buffer, buflen); |
|
written += t2pWriteFile(output, (tdata_t) " 0 R ", 5); |
|
@@ -4191,9 +4187,7 @@ tsize_t t2p_write_pdf_page(uint32 object, T2P* t2p, TIFF* output){ |
|
if(t2p->tiff_transferfunctioncount != 0) { |
|
written += t2pWriteFile(output, (tdata_t) "/ExtGState <<", 13); |
|
t2pWriteFile(output, (tdata_t) "/GS1 ", 5); |
|
- buflen = sprintf( |
|
- buffer, |
|
- "%lu", |
|
+ buflen = snprintf(buffer, sizeof(buffer), "%lu", |
|
(unsigned long)(object + 3)); |
|
written += t2pWriteFile(output, (tdata_t) buffer, buflen); |
|
written += t2pWriteFile(output, (tdata_t) " 0 R ", 5); |
|
@@ -4566,7 +4560,7 @@ tsize_t t2p_write_pdf_page_content_stream(T2P* t2p, TIFF* output){ |
|
if(t2p->tiff_tiles[t2p->pdf_page].tiles_tilecount>0){ |
|
for(i=0;i<t2p->tiff_tiles[t2p->pdf_page].tiles_tilecount; i++){ |
|
box=t2p->tiff_tiles[t2p->pdf_page].tiles_tiles[i].tile_box; |
|
- buflen=sprintf(buffer, |
|
+ buflen=snprintf(buffer, sizeof(buffer), |
|
"q %s %.4f %.4f %.4f %.4f %.4f %.4f cm /Im%d_%ld Do Q\n", |
|
t2p->tiff_transferfunctioncount?"/GS1 gs ":"", |
|
box.mat[0], |
|
@@ -4581,7 +4575,7 @@ tsize_t t2p_write_pdf_page_content_stream(T2P* t2p, TIFF* output){ |
|
} |
|
} else { |
|
box=t2p->pdf_imagebox; |
|
- buflen=sprintf(buffer, |
|
+ buflen=snprintf(buffer, sizeof(buffer), |
|
"q %s %.4f %.4f %.4f %.4f %.4f %.4f cm /Im%d Do Q\n", |
|
t2p->tiff_transferfunctioncount?"/GS1 gs ":"", |
|
box.mat[0], |
|
@@ -4606,59 +4600,48 @@ tsize_t t2p_write_pdf_xobject_stream_dict(ttile_t tile, |
|
TIFF* output){ |
|
|
|
tsize_t written=0; |
|
- char buffer[16]; |
|
+ char buffer[32]; |
|
int buflen=0; |
|
|
|
written += t2p_write_pdf_stream_dict(0, t2p->pdf_xrefcount+1, output); |
|
written += t2pWriteFile(output, |
|
(tdata_t) "/Type /XObject \n/Subtype /Image \n/Name /Im", |
|
42); |
|
- buflen=sprintf(buffer, "%u", t2p->pdf_page+1); |
|
+ buflen=snprintf(buffer, sizeof(buffer), "%u", t2p->pdf_page+1); |
|
written += t2pWriteFile(output, (tdata_t) buffer, buflen); |
|
if(tile != 0){ |
|
written += t2pWriteFile(output, (tdata_t) "_", 1); |
|
- buflen=sprintf(buffer, "%lu", (unsigned long)tile); |
|
+ buflen=snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)tile); |
|
written += t2pWriteFile(output, (tdata_t) buffer, buflen); |
|
} |
|
written += t2pWriteFile(output, (tdata_t) "\n/Width ", 8); |
|
- _TIFFmemset((tdata_t)buffer, 0x00, 16); |
|
if(tile==0){ |
|
- buflen=sprintf(buffer, "%lu", (unsigned long)t2p->tiff_width); |
|
+ buflen=snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)t2p->tiff_width); |
|
} else { |
|
if(t2p_tile_is_right_edge(t2p->tiff_tiles[t2p->pdf_page], tile-1)!=0){ |
|
- buflen=sprintf( |
|
- buffer, |
|
- "%lu", |
|
+ buflen=snprintf(buffer, sizeof(buffer), "%lu", |
|
(unsigned long)t2p->tiff_tiles[t2p->pdf_page].tiles_edgetilewidth); |
|
} else { |
|
- buflen=sprintf( |
|
- buffer, |
|
- "%lu", |
|
+ buflen=snprintf(buffer, sizeof(buffer), "%lu", |
|
(unsigned long)t2p->tiff_tiles[t2p->pdf_page].tiles_tilewidth); |
|
} |
|
} |
|
written += t2pWriteFile(output, (tdata_t) buffer, buflen); |
|
written += t2pWriteFile(output, (tdata_t) "\n/Height ", 9); |
|
- _TIFFmemset((tdata_t)buffer, 0x00, 16); |
|
if(tile==0){ |
|
- buflen=sprintf(buffer, "%lu", (unsigned long)t2p->tiff_length); |
|
+ buflen=snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)t2p->tiff_length); |
|
} else { |
|
if(t2p_tile_is_bottom_edge(t2p->tiff_tiles[t2p->pdf_page], tile-1)!=0){ |
|
- buflen=sprintf( |
|
- buffer, |
|
- "%lu", |
|
+ buflen=snprintf(buffer, sizeof(buffer), "%lu", |
|
(unsigned long)t2p->tiff_tiles[t2p->pdf_page].tiles_edgetilelength); |
|
} else { |
|
- buflen=sprintf( |
|
- buffer, |
|
- "%lu", |
|
+ buflen=snprintf(buffer, sizeof(buffer), "%lu", |
|
(unsigned long)t2p->tiff_tiles[t2p->pdf_page].tiles_tilelength); |
|
} |
|
} |
|
written += t2pWriteFile(output, (tdata_t) buffer, buflen); |
|
written += t2pWriteFile(output, (tdata_t) "\n/BitsPerComponent ", 19); |
|
- _TIFFmemset((tdata_t)buffer, 0x00, 16); |
|
- buflen=sprintf(buffer, "%u", t2p->tiff_bitspersample); |
|
+ buflen=snprintf(buffer, sizeof(buffer), "%u", t2p->tiff_bitspersample); |
|
written += t2pWriteFile(output, (tdata_t) buffer, buflen); |
|
written += t2pWriteFile(output, (tdata_t) "\n/ColorSpace ", 13); |
|
written += t2p_write_pdf_xobject_cs(t2p, output); |
|
@@ -4702,11 +4685,10 @@ tsize_t t2p_write_pdf_xobject_cs(T2P* t2p, TIFF* output){ |
|
t2p->pdf_colorspace ^= T2P_CS_PALETTE; |
|
written += t2p_write_pdf_xobject_cs(t2p, output); |
|
t2p->pdf_colorspace |= T2P_CS_PALETTE; |
|
- buflen=sprintf(buffer, "%u", (0x0001 << t2p->tiff_bitspersample)-1 ); |
|
+ buflen=snprintf(buffer, sizeof(buffer), "%u", (0x0001 << t2p->tiff_bitspersample)-1 ); |
|
written += t2pWriteFile(output, (tdata_t) buffer, buflen); |
|
written += t2pWriteFile(output, (tdata_t) " ", 1); |
|
- _TIFFmemset(buffer, 0x00, 16); |
|
- buflen=sprintf(buffer, "%lu", (unsigned long)t2p->pdf_palettecs ); |
|
+ buflen=snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)t2p->pdf_palettecs ); |
|
written += t2pWriteFile(output, (tdata_t) buffer, buflen); |
|
written += t2pWriteFile(output, (tdata_t) " 0 R ]\n", 7); |
|
return(written); |
|
@@ -4740,10 +4722,10 @@ tsize_t t2p_write_pdf_xobject_cs(T2P* t2p, TIFF* output){ |
|
X_W /= Y_W; |
|
Z_W /= Y_W; |
|
Y_W = 1.0F; |
|
- buflen=sprintf(buffer, "[%.4f %.4f %.4f] \n", X_W, Y_W, Z_W); |
|
+ buflen=snprintf(buffer, sizeof(buffer), "[%.4f %.4f %.4f] \n", X_W, Y_W, Z_W); |
|
written += t2pWriteFile(output, (tdata_t) buffer, buflen); |
|
written += t2pWriteFile(output, (tdata_t) "/Range ", 7); |
|
- buflen=sprintf(buffer, "[%d %d %d %d] \n", |
|
+ buflen=snprintf(buffer, sizeof(buffer), "[%d %d %d %d] \n", |
|
t2p->pdf_labrange[0], |
|
t2p->pdf_labrange[1], |
|
t2p->pdf_labrange[2], |
|
@@ -4759,26 +4741,26 @@ tsize_t t2p_write_pdf_xobject_cs(T2P* t2p, TIFF* output){ |
|
tsize_t t2p_write_pdf_transfer(T2P* t2p, TIFF* output){ |
|
|
|
tsize_t written=0; |
|
- char buffer[16]; |
|
+ char buffer[32]; |
|
int buflen=0; |
|
|
|
written += t2pWriteFile(output, (tdata_t) "<< /Type /ExtGState \n/TR ", 25); |
|
if(t2p->tiff_transferfunctioncount == 1){ |
|
- buflen=sprintf(buffer, "%lu", |
|
+ buflen=snprintf(buffer, sizeof(buffer), "%lu", |
|
(unsigned long)(t2p->pdf_xrefcount + 1)); |
|
written += t2pWriteFile(output, (tdata_t) buffer, buflen); |
|
written += t2pWriteFile(output, (tdata_t) " 0 R ", 5); |
|
} else { |
|
written += t2pWriteFile(output, (tdata_t) "[ ", 2); |
|
- buflen=sprintf(buffer, "%lu", |
|
+ buflen=snprintf(buffer, sizeof(buffer), "%lu", |
|
(unsigned long)(t2p->pdf_xrefcount + 1)); |
|
written += t2pWriteFile(output, (tdata_t) buffer, buflen); |
|
written += t2pWriteFile(output, (tdata_t) " 0 R ", 5); |
|
- buflen=sprintf(buffer, "%lu", |
|
+ buflen=snprintf(buffer, sizeof(buffer), "%lu", |
|
(unsigned long)(t2p->pdf_xrefcount + 2)); |
|
written += t2pWriteFile(output, (tdata_t) buffer, buflen); |
|
written += t2pWriteFile(output, (tdata_t) " 0 R ", 5); |
|
- buflen=sprintf(buffer, "%lu", |
|
+ buflen=snprintf(buffer, sizeof(buffer), "%lu", |
|
(unsigned long)(t2p->pdf_xrefcount + 3)); |
|
written += t2pWriteFile(output, (tdata_t) buffer, buflen); |
|
written += t2pWriteFile(output, (tdata_t) " 0 R ", 5); |
|
@@ -4800,7 +4782,7 @@ tsize_t t2p_write_pdf_transfer_dict(T2P* t2p, TIFF* output, uint16 i){ |
|
written += t2pWriteFile(output, (tdata_t) "/FunctionType 0 \n", 17); |
|
written += t2pWriteFile(output, (tdata_t) "/Domain [0.0 1.0] \n", 19); |
|
written += t2pWriteFile(output, (tdata_t) "/Range [0.0 1.0] \n", 18); |
|
- buflen=sprintf(buffer, "/Size [%u] \n", (1<<t2p->tiff_bitspersample)); |
|
+ buflen=snprintf(buffer, sizeof(buffer), "/Size [%u] \n", (1<<t2p->tiff_bitspersample)); |
|
written += t2pWriteFile(output, (tdata_t) buffer, buflen); |
|
written += t2pWriteFile(output, (tdata_t) "/BitsPerSample 16 \n", 19); |
|
written += t2p_write_pdf_stream_dict(((tsize_t)1)<<(t2p->tiff_bitspersample+1), 0, output); |
|
@@ -4827,7 +4809,7 @@ tsize_t t2p_write_pdf_transfer_stream(T2P* t2p, TIFF* output, uint16 i){ |
|
tsize_t t2p_write_pdf_xobject_calcs(T2P* t2p, TIFF* output){ |
|
|
|
tsize_t written=0; |
|
- char buffer[128]; |
|
+ char buffer[256]; |
|
int buflen=0; |
|
|
|
float X_W=0.0; |
|
@@ -4895,16 +4877,16 @@ tsize_t t2p_write_pdf_xobject_calcs(T2P* t2p, TIFF* output){ |
|
written += t2pWriteFile(output, (tdata_t) "<< \n", 4); |
|
if(t2p->pdf_colorspace & T2P_CS_CALGRAY){ |
|
written += t2pWriteFile(output, (tdata_t) "/WhitePoint ", 12); |
|
- buflen=sprintf(buffer, "[%.4f %.4f %.4f] \n", X_W, Y_W, Z_W); |
|
+ buflen=snprintf(buffer, sizeof(buffer), "[%.4f %.4f %.4f] \n", X_W, Y_W, Z_W); |
|
written += t2pWriteFile(output, (tdata_t) buffer, buflen); |
|
written += t2pWriteFile(output, (tdata_t) "/Gamma 2.2 \n", 12); |
|
} |
|
if(t2p->pdf_colorspace & T2P_CS_CALRGB){ |
|
written += t2pWriteFile(output, (tdata_t) "/WhitePoint ", 12); |
|
- buflen=sprintf(buffer, "[%.4f %.4f %.4f] \n", X_W, Y_W, Z_W); |
|
+ buflen=snprintf(buffer, sizeof(buffer), "[%.4f %.4f %.4f] \n", X_W, Y_W, Z_W); |
|
written += t2pWriteFile(output, (tdata_t) buffer, buflen); |
|
written += t2pWriteFile(output, (tdata_t) "/Matrix ", 8); |
|
- buflen=sprintf(buffer, "[%.4f %.4f %.4f %.4f %.4f %.4f %.4f %.4f %.4f] \n", |
|
+ buflen=snprintf(buffer, sizeof(buffer), "[%.4f %.4f %.4f %.4f %.4f %.4f %.4f %.4f %.4f] \n", |
|
X_R, Y_R, Z_R, |
|
X_G, Y_G, Z_G, |
|
X_B, Y_B, Z_B); |
|
@@ -4923,11 +4905,11 @@ tsize_t t2p_write_pdf_xobject_calcs(T2P* t2p, TIFF* output){ |
|
tsize_t t2p_write_pdf_xobject_icccs(T2P* t2p, TIFF* output){ |
|
|
|
tsize_t written=0; |
|
- char buffer[16]; |
|
+ char buffer[32]; |
|
int buflen=0; |
|
|
|
written += t2pWriteFile(output, (tdata_t) "[/ICCBased ", 11); |
|
- buflen=sprintf(buffer, "%lu", (unsigned long)t2p->pdf_icccs); |
|
+ buflen=snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)t2p->pdf_icccs); |
|
written += t2pWriteFile(output, (tdata_t) buffer, buflen); |
|
written += t2pWriteFile(output, (tdata_t) " 0 R] \n", 7); |
|
|
|
@@ -4937,11 +4919,11 @@ tsize_t t2p_write_pdf_xobject_icccs(T2P* t2p, TIFF* output){ |
|
tsize_t t2p_write_pdf_xobject_icccs_dict(T2P* t2p, TIFF* output){ |
|
|
|
tsize_t written=0; |
|
- char buffer[16]; |
|
+ char buffer[32]; |
|
int buflen=0; |
|
|
|
written += t2pWriteFile(output, (tdata_t) "/N ", 3); |
|
- buflen=sprintf(buffer, "%u \n", t2p->tiff_samplesperpixel); |
|
+ buflen=snprintf(buffer, sizeof(buffer), "%u \n", t2p->tiff_samplesperpixel); |
|
written += t2pWriteFile(output, (tdata_t) buffer, buflen); |
|
written += t2pWriteFile(output, (tdata_t) "/Alternate ", 11); |
|
t2p->pdf_colorspace ^= T2P_CS_ICCBASED; |
|
@@ -5006,7 +4988,7 @@ tsize_t t2p_write_pdf_xobject_decode(T2P* t2p, TIFF* output){ |
|
tsize_t t2p_write_pdf_xobject_stream_filter(ttile_t tile, T2P* t2p, TIFF* output){ |
|
|
|
tsize_t written=0; |
|
- char buffer[16]; |
|
+ char buffer[32]; |
|
int buflen=0; |
|
|
|
if(t2p->pdf_compression==T2P_COMPRESS_NONE){ |
|
@@ -5021,41 +5003,33 @@ tsize_t t2p_write_pdf_xobject_stream_filter(ttile_t tile, T2P* t2p, TIFF* output |
|
written += t2pWriteFile(output, (tdata_t) "<< /K -1 ", 9); |
|
if(tile==0){ |
|
written += t2pWriteFile(output, (tdata_t) "/Columns ", 9); |
|
- buflen=sprintf(buffer, "%lu", |
|
+ buflen=snprintf(buffer, sizeof(buffer), "%lu", |
|
(unsigned long)t2p->tiff_width); |
|
written += t2pWriteFile(output, (tdata_t) buffer, buflen); |
|
written += t2pWriteFile(output, (tdata_t) " /Rows ", 7); |
|
- buflen=sprintf(buffer, "%lu", |
|
+ buflen=snprintf(buffer, sizeof(buffer), "%lu", |
|
(unsigned long)t2p->tiff_length); |
|
written += t2pWriteFile(output, (tdata_t) buffer, buflen); |
|
} else { |
|
if(t2p_tile_is_right_edge(t2p->tiff_tiles[t2p->pdf_page], tile-1)==0){ |
|
written += t2pWriteFile(output, (tdata_t) "/Columns ", 9); |
|
- buflen=sprintf( |
|
- buffer, |
|
- "%lu", |
|
+ buflen=snprintf(buffer, sizeof(buffer), "%lu", |
|
(unsigned long)t2p->tiff_tiles[t2p->pdf_page].tiles_tilewidth); |
|
written += t2pWriteFile(output, (tdata_t) buffer, buflen); |
|
} else { |
|
written += t2pWriteFile(output, (tdata_t) "/Columns ", 9); |
|
- buflen=sprintf( |
|
- buffer, |
|
- "%lu", |
|
+ buflen=snprintf(buffer, sizeof(buffer), "%lu", |
|
(unsigned long)t2p->tiff_tiles[t2p->pdf_page].tiles_edgetilewidth); |
|
written += t2pWriteFile(output, (tdata_t) buffer, buflen); |
|
} |
|
if(t2p_tile_is_bottom_edge(t2p->tiff_tiles[t2p->pdf_page], tile-1)==0){ |
|
written += t2pWriteFile(output, (tdata_t) " /Rows ", 7); |
|
- buflen=sprintf( |
|
- buffer, |
|
- "%lu", |
|
+ buflen=snprintf(buffer, sizeof(buffer), "%lu", |
|
(unsigned long)t2p->tiff_tiles[t2p->pdf_page].tiles_tilelength); |
|
written += t2pWriteFile(output, (tdata_t) buffer, buflen); |
|
} else { |
|
written += t2pWriteFile(output, (tdata_t) " /Rows ", 7); |
|
- buflen=sprintf( |
|
- buffer, |
|
- "%lu", |
|
+ buflen=snprintf(buffer, sizeof(buffer), "%lu", |
|
(unsigned long)t2p->tiff_tiles[t2p->pdf_page].tiles_edgetilelength); |
|
written += t2pWriteFile(output, (tdata_t) buffer, buflen); |
|
} |
|
@@ -5082,21 +5056,17 @@ tsize_t t2p_write_pdf_xobject_stream_filter(ttile_t tile, T2P* t2p, TIFF* output |
|
if(t2p->pdf_compressionquality%100){ |
|
written += t2pWriteFile(output, (tdata_t) "/DecodeParms ", 13); |
|
written += t2pWriteFile(output, (tdata_t) "<< /Predictor ", 14); |
|
- _TIFFmemset(buffer, 0x00, 16); |
|
- buflen=sprintf(buffer, "%u", t2p->pdf_compressionquality%100); |
|
+ buflen=snprintf(buffer, sizeof(buffer), "%u", t2p->pdf_compressionquality%100); |
|
written += t2pWriteFile(output, (tdata_t) buffer, buflen); |
|
written += t2pWriteFile(output, (tdata_t) " /Columns ", 10); |
|
- _TIFFmemset(buffer, 0x00, 16); |
|
- buflen = sprintf(buffer, "%lu", |
|
+ buflen = snprintf(buffer, sizeof(buffer), "%lu", |
|
(unsigned long)t2p->tiff_width); |
|
written += t2pWriteFile(output, (tdata_t) buffer, buflen); |
|
written += t2pWriteFile(output, (tdata_t) " /Colors ", 9); |
|
- _TIFFmemset(buffer, 0x00, 16); |
|
- buflen=sprintf(buffer, "%u", t2p->tiff_samplesperpixel); |
|
+ buflen=snprintf(buffer, sizeof(buffer), "%u", t2p->tiff_samplesperpixel); |
|
written += t2pWriteFile(output, (tdata_t) buffer, buflen); |
|
written += t2pWriteFile(output, (tdata_t) " /BitsPerComponent ", 19); |
|
- _TIFFmemset(buffer, 0x00, 16); |
|
- buflen=sprintf(buffer, "%u", t2p->tiff_bitspersample); |
|
+ buflen=snprintf(buffer, sizeof(buffer), "%u", t2p->tiff_bitspersample); |
|
written += t2pWriteFile(output, (tdata_t) buffer, buflen); |
|
written += t2pWriteFile(output, (tdata_t) ">>\n", 3); |
|
} |
|
@@ -5116,16 +5086,16 @@ tsize_t t2p_write_pdf_xobject_stream_filter(ttile_t tile, T2P* t2p, TIFF* output |
|
tsize_t t2p_write_pdf_xreftable(T2P* t2p, TIFF* output){ |
|
|
|
tsize_t written=0; |
|
- char buffer[21]; |
|
+ char buffer[64]; |
|
int buflen=0; |
|
uint32 i=0; |
|
|
|
written += t2pWriteFile(output, (tdata_t) "xref\n0 ", 7); |
|
- buflen=sprintf(buffer, "%lu", (unsigned long)(t2p->pdf_xrefcount + 1)); |
|
+ buflen=snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)(t2p->pdf_xrefcount + 1)); |
|
written += t2pWriteFile(output, (tdata_t) buffer, buflen); |
|
written += t2pWriteFile(output, (tdata_t) " \n0000000000 65535 f \n", 22); |
|
for (i=0;i<t2p->pdf_xrefcount;i++){ |
|
- sprintf(buffer, "%.10lu 00000 n \n", |
|
+ snprintf(buffer, sizeof(buffer), "%.10lu 00000 n \n", |
|
(unsigned long)t2p->pdf_xrefoffsets[i]); |
|
written += t2pWriteFile(output, (tdata_t) buffer, 20); |
|
} |
|
@@ -5149,17 +5119,14 @@ tsize_t t2p_write_pdf_trailer(T2P* t2p, TIFF* output) |
|
snprintf(t2p->pdf_fileid + i, 9, "%.8X", rand()); |
|
|
|
written += t2pWriteFile(output, (tdata_t) "trailer\n<<\n/Size ", 17); |
|
- buflen = sprintf(buffer, "%lu", (unsigned long)(t2p->pdf_xrefcount+1)); |
|
+ buflen = snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)(t2p->pdf_xrefcount+1)); |
|
written += t2pWriteFile(output, (tdata_t) buffer, buflen); |
|
- _TIFFmemset(buffer, 0x00, 32); |
|
written += t2pWriteFile(output, (tdata_t) "\n/Root ", 7); |
|
- buflen=sprintf(buffer, "%lu", (unsigned long)t2p->pdf_catalog); |
|
+ buflen=snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)t2p->pdf_catalog); |
|
written += t2pWriteFile(output, (tdata_t) buffer, buflen); |
|
- _TIFFmemset(buffer, 0x00, 32); |
|
written += t2pWriteFile(output, (tdata_t) " 0 R \n/Info ", 12); |
|
- buflen=sprintf(buffer, "%lu", (unsigned long)t2p->pdf_info); |
|
+ buflen=snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)t2p->pdf_info); |
|
written += t2pWriteFile(output, (tdata_t) buffer, buflen); |
|
- _TIFFmemset(buffer, 0x00, 32); |
|
written += t2pWriteFile(output, (tdata_t) " 0 R \n/ID[<", 11); |
|
written += t2pWriteFile(output, (tdata_t) t2p->pdf_fileid, |
|
sizeof(t2p->pdf_fileid) - 1); |
|
@@ -5167,9 +5134,8 @@ tsize_t t2p_write_pdf_trailer(T2P* t2p, TIFF* output) |
|
written += t2pWriteFile(output, (tdata_t) t2p->pdf_fileid, |
|
sizeof(t2p->pdf_fileid) - 1); |
|
written += t2pWriteFile(output, (tdata_t) ">]\n>>\nstartxref\n", 16); |
|
- buflen=sprintf(buffer, "%lu", (unsigned long)t2p->pdf_startxref); |
|
+ buflen=snprintf(buffer, sizeof(buffer), "%lu", (unsigned long)t2p->pdf_startxref); |
|
written += t2pWriteFile(output, (tdata_t) buffer, buflen); |
|
- _TIFFmemset(buffer, 0x00, 32); |
|
written += t2pWriteFile(output, (tdata_t) "\n%%EOF\n", 7); |
|
|
|
return(written); |
|
diff --git a/tools/tiff2ps.c b/tools/tiff2ps.c |
|
index 7882d30..45209c1 100644 |
|
--- a/tools/tiff2ps.c |
|
+++ b/tools/tiff2ps.c |
|
@@ -1781,8 +1781,8 @@ PS_Lvl2ImageDict(FILE* fd, TIFF* tif, uint32 w, uint32 h) |
|
imageOp = "imagemask"; |
|
|
|
(void)strcpy(im_x, "0"); |
|
- (void)sprintf(im_y, "%lu", (long) h); |
|
- (void)sprintf(im_h, "%lu", (long) h); |
|
+ (void)snprintf(im_y, sizeof(im_y), "%lu", (long) h); |
|
+ (void)snprintf(im_h, sizeof(im_h), "%lu", (long) h); |
|
tile_width = w; |
|
tile_height = h; |
|
if (TIFFIsTiled(tif)) { |
|
@@ -1803,7 +1803,7 @@ PS_Lvl2ImageDict(FILE* fd, TIFF* tif, uint32 w, uint32 h) |
|
} |
|
if (tile_height < h) { |
|
fputs("/im_y 0 def\n", fd); |
|
- (void)sprintf(im_y, "%lu im_y sub", (unsigned long) h); |
|
+ (void)snprintf(im_y, sizeof(im_y), "%lu im_y sub", (unsigned long) h); |
|
} |
|
} else { |
|
repeat_count = tf_numberstrips; |
|
@@ -1815,7 +1815,7 @@ PS_Lvl2ImageDict(FILE* fd, TIFF* tif, uint32 w, uint32 h) |
|
fprintf(fd, "/im_h %lu def\n", |
|
(unsigned long) tile_height); |
|
(void)strcpy(im_h, "im_h"); |
|
- (void)sprintf(im_y, "%lu im_y sub", (unsigned long) h); |
|
+ (void)snprintf(im_y, sizeof(im_y), "%lu im_y sub", (unsigned long) h); |
|
} |
|
} |
|
|
|
diff --git a/tools/tiffcrop.c b/tools/tiffcrop.c |
|
index 7ab3e53..e22ed2b 100644 |
|
--- a/tools/tiffcrop.c |
|
+++ b/tools/tiffcrop.c |
|
@@ -2077,7 +2077,7 @@ update_output_file (TIFF **tiffout, char *mode, int autoindex, |
|
return 1; |
|
} |
|
|
|
- sprintf (filenum, "-%03d%s", findex, export_ext); |
|
+ snprintf(filenum, sizeof(filenum), "-%03d%s", findex, export_ext); |
|
filenum[14] = '\0'; |
|
strncat (exportname, filenum, 15); |
|
} |
|
@@ -2230,8 +2230,8 @@ main(int argc, char* argv[]) |
|
|
|
/* dump.infilename is guaranteed to be NUL termimated and have 20 bytes |
|
fewer than PATH_MAX */ |
|
- memset (temp_filename, '\0', PATH_MAX + 1); |
|
- sprintf (temp_filename, "%s-read-%03d.%s", dump.infilename, dump_images, |
|
+ snprintf(temp_filename, sizeof(temp_filename), "%s-read-%03d.%s", |
|
+ dump.infilename, dump_images, |
|
(dump.format == DUMP_TEXT) ? "txt" : "raw"); |
|
if ((dump.infile = fopen(temp_filename, dump.mode)) == NULL) |
|
{ |
|
@@ -2249,8 +2249,8 @@ main(int argc, char* argv[]) |
|
|
|
/* dump.outfilename is guaranteed to be NUL termimated and have 20 bytes |
|
fewer than PATH_MAX */ |
|
- memset (temp_filename, '\0', PATH_MAX + 1); |
|
- sprintf (temp_filename, "%s-write-%03d.%s", dump.outfilename, dump_images, |
|
+ snprintf(temp_filename, sizeof(temp_filename), "%s-write-%03d.%s", |
|
+ dump.outfilename, dump_images, |
|
(dump.format == DUMP_TEXT) ? "txt" : "raw"); |
|
if ((dump.outfile = fopen(temp_filename, dump.mode)) == NULL) |
|
{ |
|
diff --git a/tools/tiffdither.c b/tools/tiffdither.c |
|
index 08eb59d..91152d4 100644 |
|
--- a/tools/tiffdither.c |
|
+++ b/tools/tiffdither.c |
|
@@ -260,7 +260,7 @@ main(int argc, char* argv[]) |
|
TIFFSetField(out, TIFFTAG_FILLORDER, fillorder); |
|
else |
|
CopyField(TIFFTAG_FILLORDER, shortv); |
|
- sprintf(thing, "Dithered B&W version of %s", argv[optind]); |
|
+ snprintf(thing, sizeof(thing), "Dithered B&W version of %s", argv[optind]); |
|
TIFFSetField(out, TIFFTAG_IMAGEDESCRIPTION, thing); |
|
CopyField(TIFFTAG_PHOTOMETRIC, shortv); |
|
CopyField(TIFFTAG_ORIENTATION, shortv); |
|
-- |
|
1.7.10.2 |
|
|
|
|