~ubuntu-branches/ubuntu/intrepid/libpng/intrepid-security

« back to all changes in this revision

Viewing changes to pngwtran.c

  • Committer: Bazaar Package Importer
  • Author(s): Anibal Monsalve Salazar
  • Date: 2006-11-21 19:07:43 UTC
  • mfrom: (1.1.3 upstream)
  • Revision ID: james.westby@ubuntu.com-20061121190743-wkt0yzs5uq2xoq10
Tags: 1.2.13-4
Removed drop_pass_width patch. Closes: #399499.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
 
2
2
/* pngwtran.c - transforms the data in a row for PNG writers
3
3
 *
4
 
 * libpng version 1.2.8 - December 3, 2004
 
4
 * Last changed in libpng 1.2.9 April 14, 2006
5
5
 * For conditions of distribution and use, see copyright notice in png.h
6
 
 * Copyright (c) 1998-2004 Glenn Randers-Pehrson
 
6
 * Copyright (c) 1998-2006 Glenn Randers-Pehrson
7
7
 * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
8
8
 * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
9
9
 */
60
60
      png_do_shift(&(png_ptr->row_info), png_ptr->row_buf + 1,
61
61
         &(png_ptr->shift));
62
62
#endif
 
63
#if defined(PNG_WRITE_SWAP_ALPHA_SUPPORTED)
 
64
   if (png_ptr->transformations & PNG_SWAP_ALPHA)
 
65
      png_do_write_swap_alpha(&(png_ptr->row_info), png_ptr->row_buf + 1);
 
66
#endif
63
67
#if defined(PNG_WRITE_INVERT_ALPHA_SUPPORTED)
64
68
   if (png_ptr->transformations & PNG_INVERT_ALPHA)
65
69
      png_do_write_invert_alpha(&(png_ptr->row_info), png_ptr->row_buf + 1);
66
70
#endif
67
 
#if defined(PNG_WRITE_SWAP_ALPHA_SUPPORTED)
68
 
   if (png_ptr->transformations & PNG_SWAP_ALPHA)
69
 
      png_do_write_swap_alpha(&(png_ptr->row_info), png_ptr->row_buf + 1);
70
 
#endif
71
71
#if defined(PNG_WRITE_BGR_SUPPORTED)
72
72
   if (png_ptr->transformations & PNG_BGR)
73
73
      png_do_bgr(&(png_ptr->row_info), png_ptr->row_buf + 1);
439
439
            png_uint_32 row_width = row_info->width;
440
440
            for (i = 0, sp = dp = row; i < row_width; i++)
441
441
            {
442
 
               *(dp++) = *(sp++);
443
 
               *(dp++) = *(sp++);
444
 
               *(dp++) = *(sp++);
 
442
               /* does nothing
 
443
               *(dp++) = *(sp++);
 
444
               *(dp++) = *(sp++);
 
445
               *(dp++) = *(sp++);
 
446
               */
 
447
               sp+=3; dp = sp;
445
448
               *(dp++) = (png_byte)(255 - *(sp++));
446
449
            }
447
450
         }
454
457
 
455
458
            for (i = 0, sp = dp = row; i < row_width; i++)
456
459
            {
457
 
               *(dp++) = *(sp++);
458
 
               *(dp++) = *(sp++);
459
 
               *(dp++) = *(sp++);
460
 
               *(dp++) = *(sp++);
461
 
               *(dp++) = *(sp++);
462
 
               *(dp++) = *(sp++);
 
460
               /* does nothing
 
461
               *(dp++) = *(sp++);
 
462
               *(dp++) = *(sp++);
 
463
               *(dp++) = *(sp++);
 
464
               *(dp++) = *(sp++);
 
465
               *(dp++) = *(sp++);
 
466
               *(dp++) = *(sp++);
 
467
               */
 
468
               sp+=6; dp = sp;
463
469
               *(dp++) = (png_byte)(255 - *(sp++));
464
470
               *(dp++) = (png_byte)(255 - *(sp++));
465
471
            }
489
495
 
490
496
            for (i = 0, sp = dp = row; i < row_width; i++)
491
497
            {
492
 
               *(dp++) = *(sp++);
493
 
               *(dp++) = *(sp++);
 
498
               /* does nothing
 
499
               *(dp++) = *(sp++);
 
500
               *(dp++) = *(sp++);
 
501
               */
 
502
               sp+=2; dp = sp;
494
503
               *(dp++) = (png_byte)(255 - *(sp++));
495
504
               *(dp++) = (png_byte)(255 - *(sp++));
496
505
            }