aboutsummaryrefslogtreecommitdiff
path: root/graphics/dc20ctrl/files/patch-pixmaps.c
diff options
context:
space:
mode:
Diffstat (limited to 'graphics/dc20ctrl/files/patch-pixmaps.c')
-rw-r--r--graphics/dc20ctrl/files/patch-pixmaps.c50
1 files changed, 50 insertions, 0 deletions
diff --git a/graphics/dc20ctrl/files/patch-pixmaps.c b/graphics/dc20ctrl/files/patch-pixmaps.c
new file mode 100644
index 000000000000..8b910130f60c
--- /dev/null
+++ b/graphics/dc20ctrl/files/patch-pixmaps.c
@@ -0,0 +1,50 @@
+--- pixmaps.c.orig 1998-02-17 18:19:47.000000000 +0100
++++ pixmaps.c 2012-04-30 21:36:08.000000000 +0200
+@@ -446,7 +446,7 @@
+ if (p) {
+ if ((png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL)) != NULL) {
+ if ((info_ptr = png_create_info_struct(png_ptr)) != NULL) {
+- if (setjmp(png_ptr->jmpbuf) == 0) {
++ if (setjmp(png_jmpbuf(png_ptr)) == 0) {
+ png_init_io(png_ptr, fp);
+ png_set_IHDR(png_ptr, info_ptr, p->width, p->height, 8, (p->components == 1) ? PNG_COLOR_TYPE_GRAY : PNG_COLOR_TYPE_RGB, PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_BASE, PNG_FILTER_TYPE_BASE);
+ png_write_info(png_ptr, info_ptr);
+@@ -504,26 +504,32 @@
+ * Build the image name
+ */
+
+- strcpy(fname, name);
+- strcat(fname, ".");
++ if (strlcpy(fname, name, sizeof(fname)) >= sizeof(fname))
++ return -1;
++ if (strlcat(fname, ".", sizeof(fname)) >= sizeof(fname))
++ return -1;
+ switch (format & SAVE_FORMATS) {
+ #ifdef USE_JPEG
+ case SAVE_JPEG:
+- strcat(fname, JPEG_EXT);
++ if (strlcat(fname, JPEG_EXT, sizeof(fname)) >= sizeof(fname))
++ return -1;
+ break;
+ #endif /* USE_JPEG */
+ #ifdef USE_TIFF
+ case SAVE_TIFF:
+- strcat(fname, TIFF_EXT);
++ if (strlcat(fname, TIFF_EXT, sizeof(fname)) >= sizeof(fname))
++ return -1;
+ break;
+ #endif /* USE_TIFF */
+ #ifdef USE_PNG
+ case SAVE_PNG:
+- strcat(fname, PNG_EXT);
++ if (strlcat(fname, PNG_EXT, sizeof(fname)) >= sizeof(fname))
++ return -1;
+ break;
+ #endif /* USE_PNG */
+ default:
+- strcat(fname, (to_be_saved->components == 3) ? PPM_EXT : PGM_EXT );
++ if (strlcat(fname, (to_be_saved->components == 3) ? PPM_EXT : PGM_EXT, sizeof(fname)) >= sizeof(fname))
++ return -1;
+ break;
+ }
+