perl-tk.patch 3.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. --- Tk-804.027/PNG/libpng/pngrtran.c.orig Wed Oct 2 20:20:24 2002
  2. +++ Tk-804.027/PNG/libpng/pngrtran.c Wed Jan 15 11:30:23 2003
  3. @@ -1965,8 +1965,8 @@
  4. /* This changes the data from RRGGBB to RRGGBBXX */
  5. if (flags & PNG_FLAG_FILLER_AFTER)
  6. {
  7. - png_bytep sp = row + (png_size_t)row_width * 3;
  8. - png_bytep dp = sp + (png_size_t)row_width;
  9. + png_bytep sp = row + (png_size_t)row_width * 6;
  10. + png_bytep dp = sp + (png_size_t)row_width * 2;
  11. for (i = 1; i < row_width; i++)
  12. {
  13. *(--dp) = hi_filler;
  14. @@ -1987,8 +1987,8 @@
  15. /* This changes the data from RRGGBB to XXRRGGBB */
  16. else
  17. {
  18. - png_bytep sp = row + (png_size_t)row_width * 3;
  19. - png_bytep dp = sp + (png_size_t)row_width;
  20. + png_bytep sp = row + (png_size_t)row_width * 6;
  21. + png_bytep dp = sp + (png_size_t)row_width * 2;
  22. for (i = 0; i < row_width; i++)
  23. {
  24. *(--dp) = *(--sp);
  25. Steve G <linux_4ever@yahoo.com>
  26. Libpng accesses memory that is out of bounds when creating an error message
  27. Index: pngerror.c
  28. --- Tk-804.027/PNG/libpng/pngerror.c.orig 2002-10-03 13:32:27.000000000 +0200
  29. +++ Tk-804.027/PNG/libpng/pngerror.c 2004-04-28 13:24:22.000000000 +0200
  30. @@ -135,10 +135,13 @@
  31. buffer[iout] = 0;
  32. else
  33. {
  34. + png_size_t len;
  35. + if ((len = png_strlen(error_message)) > 63)
  36. + len = 63;
  37. buffer[iout++] = ':';
  38. buffer[iout++] = ' ';
  39. - png_memcpy(buffer+iout, error_message, 64);
  40. - buffer[iout+63] = 0;
  41. + png_memcpy(buffer+iout, error_message, len);
  42. + buffer[iout+len] = 0;
  43. }
  44. }
  45. --- Tk-PNG-2.005/libpng/pngrtran.c.orig Wed Oct 2 20:20:24 2002
  46. +++ Tk-PNG-2.005/libpng/pngrtran.c Wed Jan 15 11:30:23 2003
  47. @@ -1965,8 +1965,8 @@
  48. /* This changes the data from RRGGBB to RRGGBBXX */
  49. if (flags & PNG_FLAG_FILLER_AFTER)
  50. {
  51. - png_bytep sp = row + (png_size_t)row_width * 3;
  52. - png_bytep dp = sp + (png_size_t)row_width;
  53. + png_bytep sp = row + (png_size_t)row_width * 6;
  54. + png_bytep dp = sp + (png_size_t)row_width * 2;
  55. for (i = 1; i < row_width; i++)
  56. {
  57. *(--dp) = hi_filler;
  58. @@ -1987,8 +1987,8 @@
  59. /* This changes the data from RRGGBB to XXRRGGBB */
  60. else
  61. {
  62. - png_bytep sp = row + (png_size_t)row_width * 3;
  63. - png_bytep dp = sp + (png_size_t)row_width;
  64. + png_bytep sp = row + (png_size_t)row_width * 6;
  65. + png_bytep dp = sp + (png_size_t)row_width * 2;
  66. for (i = 0; i < row_width; i++)
  67. {
  68. *(--dp) = *(--sp);
  69. Steve G <linux_4ever@yahoo.com>
  70. Libpng accesses memory that is out of bounds when creating an error message
  71. Index: pngerror.c
  72. --- Tk-PNG-2.005/libpng/pngerror.c.orig 2004-04-29 15:33:33.000000000 +0200
  73. +++ Tk-PNG-2.005/libpng/pngerror.c 2004-04-29 15:35:46.000000000 +0200
  74. @@ -81,11 +81,15 @@
  75. if (message == NULL)
  76. buffer[iout] = 0;
  77. - else {
  78. + else
  79. + {
  80. + png_size_t len;
  81. + if ((len = png_strlen(message)) > 63)
  82. + len = 63;
  83. buffer[iout++] = ':';
  84. buffer[iout++] = ' ';
  85. - png_memcpy(buffer+iout, message, 64);
  86. - buffer[iout+63] = 0;
  87. + png_memcpy(buffer+iout, message, len);
  88. + buffer[iout+len] = 0;
  89. }
  90. }