File libpano-invalid-write.patch of Package libpano

--- filter.c
+++ filter.c
@@ -1281,22 +1281,22 @@
 }
 
 /* ENDIAN aware file i/o funtions.  Used for reading and writing photoshop files */
-Boolean panoWriteUCHAR(file_spec fnum, UCHAR theChar )
+Boolean panoWriteUCHAR(nfile_spec fnum, UCHAR theChar )
 { 
-    return write( fnum, 1, &theChar ) == 1;
+    return write( fnum, &theChar, 1 ) == 1;
 }
 
-Boolean panoWriteSHORT(file_spec fnum, USHORT theShort )
+Boolean panoWriteSHORT(nfile_spec fnum, USHORT theShort )
 {
     char data[2], *d;
     d = data;
     
     assert(sizeof(USHORT) == 2);
     SHORTNUMBER( theShort, d );
-    return write( fnum, 2, data ) == 2;
+    return write( fnum, data, 2 ) == 2;
 }
 
-Boolean panoWriteINT32(file_spec fnum, ULONG theLong )
+Boolean panoWriteINT32(nfile_spec fnum, ULONG theLong )
 {
     size_t count = 4;
     char data[4], *d;
@@ -1306,19 +1306,19 @@
     
     LONGNUMBER( theLong, d );
     
-    return write( fnum, 4, data ) == 4;
+    return write( fnum, data, 4 ) == 4;
 }
 
-Boolean panoReadUCHAR(file_spec fnum, UCHAR *pChar )
+Boolean panoReadUCHAR(nfile_spec fnum, UCHAR *pChar )
 {
-    return read( fnum, 1, pChar )== 1;
+    return read( fnum, pChar, 1 )== 1;
 }
 
-Boolean panoReadSHORT(file_spec fnum, USHORT *pShort )
+Boolean panoReadSHORT(nfile_spec fnum, USHORT *pShort )
 {
     char data[2];
     char *d;
-    if (read( fnum, 2, data ) != 2) {
+    if (read( fnum, data, 2 ) != 2) {
         return FALSE;
     }
 
@@ -1329,10 +1329,10 @@
     return TRUE;
 }
 
-Boolean panoReadINT32(file_spec fnum, ULONG *pLong )
+Boolean panoReadINT32(nfile_spec fnum, ULONG *pLong )
 {
     char data[4], *d;
-    if (read( fnum, 4, data )!= 4) {
+    if (read( fnum, data, 4 )!= 4) {
         return FALSE;
     }
     d = data;
--- filter.h
+++ filter.h
@@ -947,6 +947,7 @@
 	#include "sys_mac.h"
 	
 	#define			file_spec							short
+	#define			nfile_spec							short
 	#define			myopen( path, perm, fspec )			( FSpOpenDF( path, perm, &fspec ) != noErr )
 	#define			mywrite( fspec, count, data )		FSWrite	(fspec, &count, data) 
 	#define 		myread(  fspec, count, data )		FSRead  (fspec, &count, data) 
@@ -962,6 +963,7 @@
 			
 #else // __Mac__, use ANSI-filefunctions
 	#define		file_spec			FILE*
+	#define		nfile_spec			int
 	#define		myopen( path, perm, fspec )	( (fspec = fopen( (path)->name, perm )) == NULL)
 	#define		mywrite( fspec, count, data )	count = fwrite( data, 1, count, fspec)
 	#define 	myread( fspec, count, data )	count = fread( data, 1, count, fspec ) 
@@ -988,12 +990,12 @@
 #endif
 
 /* ENDIAN aware file i/o funtions.  Used for reading and writing photoshop files */
-Boolean panoWriteUCHAR(file_spec fnum, UCHAR   theChar );
-Boolean panoWriteSHORT(file_spec fnum, USHORT  theShort );
-Boolean panoWriteINT32(file_spec fnum, ULONG   theLong );
-Boolean panoReadUCHAR (file_spec fnum, UCHAR  *pChar );
-Boolean panoReadSHORT (file_spec fnum, USHORT *pShort );
-Boolean panoReadINT32 (file_spec fnum, ULONG  *pLong );
+Boolean panoWriteUCHAR(nfile_spec fnum, UCHAR   theChar );
+Boolean panoWriteSHORT(nfile_spec fnum, USHORT  theShort );
+Boolean panoWriteINT32(nfile_spec fnum, ULONG   theLong );
+Boolean panoReadUCHAR (nfile_spec fnum, UCHAR  *pChar );
+Boolean panoReadSHORT (nfile_spec fnum, USHORT *pShort );
+Boolean panoReadINT32 (nfile_spec fnum, ULONG  *pLong );
     
 
 #define PANO_DEFAULT_PIXELS_PER_RESOLUTION  150.0
openSUSE Build Service is sponsored by