epson-inkjet-printer-escpr/bug_x86_64.patch
Johannes Meixner e0acb72e3e Accepting request 503283 from home:NicoK:branches:Printing
include a fix from AUR that fixes the segfaults users were seeing since GCC7 (or earlier?) on x86_64

OBS-URL: https://build.opensuse.org/request/show/503283
OBS-URL: https://build.opensuse.org/package/show/Printing/epson-inkjet-printer-escpr?expand=0&rev=33
2017-06-19 08:41:15 +00:00

99 lines
2.9 KiB
Diff

diff -Naur epson-inkjet-printer-escpr-1.6.9/src/filter.c epson-inkjet-printer-escpr-1.6.9-fixed/src/filter.c
--- epson-inkjet-printer-escpr-1.6.9/src/filter.c 2016-09-21 03:55:30.000000000 +0200
+++ epson-inkjet-printer-escpr-1.6.9-fixed/src/filter.c 2016-10-07 22:07:23.965463021 +0200
@@ -34,6 +34,8 @@
#include "epson-protocol.h"
#include "epson-escpr-api.h"
#include "epson-escpr-mem.h"
+#include "epson-escpr-services.h"
+#include "epson-escpage.h"
#include "err.h"
#include "mem.h"
@@ -42,6 +44,11 @@
#include "libprtX.h"
#include "optBase.h"
#include "linux_cmn.h"
+#include "xfifo.h"
+
+extern EPS_ERR_CODE SetupJobAttrib (const EPS_JOB_ATTRIB*);
+extern EPS_ERR_CODE SendStartJob ();
+extern EPS_ERR_CODE PrintBand (const EPS_UINT8*, EPS_UINT32, EPS_UINT32*);
#define WIDTH_BYTES(bits) (((bits) + 31) / 32 * 4)
@@ -380,10 +387,10 @@
}else{
debug_msg("pageStartJob() success");
}
-
+
printJob.jobStatus = EPS_STATUS_ESTABLISHED;
- int printHeight = 0;
-///////////////////////////////////////////////////////////////////////////////////////////////////////////
+ EPS_UINT32 printHeight = 0;
+///////////////////////////////////////////////////////////////////////////////////////////////////////////
print_area_x = printJob.printableAreaWidth;
print_area_y = printJob.printableAreaHeight;
@@ -535,7 +542,7 @@
memcpy(rever_buf + k*3, startpage + pos + (bandBmp.widthBytes - 6) - k*3, 3);
}
}
- PrintBand (rever_buf, bandBmp.widthBytes, &printHeight);
+ PrintBand ((const EPS_UINT8 *)rever_buf, bandBmp.widthBytes, &printHeight);
pos -= bandBmp.widthBytes;
}
@@ -642,17 +649,17 @@
}
}
}
-
+
band_line_count ++;
-
+
if (band_line_count >= band_line)
{
printHeight = band_line_count;
PrintBand (bandBmp.bits, bandBmp.widthBytes, &printHeight);
#if (HAVE_PPM)
fp = fopen(ppmfilename, "a+");
- int i=0;
- for(i=0; i<bytes_per_line/byte_par_pixel*3; i++){
+ int i=0;
+ for(i=0; i<bytes_per_line/byte_par_pixel*3; i++){
fprintf(fp, "%u ", (unsigned char)bandBmp.Bits[i]);
}
fprintf(fp, "\n");
@@ -831,7 +838,7 @@
/* Get number of pages */
char page_num;
- read (STDIN_FILENO, &page_num, 1);
+ (void)read (STDIN_FILENO, &page_num, 1);
/* Others */
jobAttr.apfAutoCorrect = EPS_APF_ACT_STANDARD;
@@ -881,7 +888,7 @@
// fwrite (pBuf, cbBuf, 1, outfp);
- XFIFOWrite(context, pBuf, cbBuf);
+ XFIFOWrite(context, (char *)pBuf, cbBuf);
return 1;
}
diff -Naur epson-inkjet-printer-escpr-1.6.9/src/mem.c epson-inkjet-printer-escpr-1.6.9-fixed/src/mem.c
--- epson-inkjet-printer-escpr-1.6.9/src/mem.c 2016-09-21 03:55:30.000000000 +0200
+++ epson-inkjet-printer-escpr-1.6.9-fixed/src/mem.c 2016-10-07 22:07:59.519366574 +0200
@@ -24,6 +24,7 @@
#include <stdlib.h>
#include "mem.h"
+#include "err.h"
void *
mem_malloc (unsigned int size, bool_t crit)