summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKurtis Schlepp <mopriadevteam@gmail.com>2021-06-24 18:31:04 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2021-06-24 18:31:04 +0000
commit3f82559a3ef9bf63167f18d16e143a22fde6a258 (patch)
tree2e63b717094323d46291e523e1bcf7178b93d118
parent76de2be49106c740fe1725730976c508400988b0 (diff)
parent735ca398d101c05baa51d0f196c1f2ab5a8d0779 (diff)
downloadplatform_packages_services_BuiltInPrintService-3f82559a3ef9bf63167f18d16e143a22fde6a258.tar.gz
platform_packages_services_BuiltInPrintService-3f82559a3ef9bf63167f18d16e143a22fde6a258.tar.bz2
platform_packages_services_BuiltInPrintService-3f82559a3ef9bf63167f18d16e143a22fde6a258.zip
fix crash when printing to pclm supporting printers am: 735ca398d1
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/services/BuiltInPrintService/+/15096150 Change-Id: I21898df584e55d29ab95b945af0b9df9f35a2a9e
-rw-r--r--jni/plugins/genPCLm/src/genPCLm.cpp5
1 files changed, 2 insertions, 3 deletions
diff --git a/jni/plugins/genPCLm/src/genPCLm.cpp b/jni/plugins/genPCLm/src/genPCLm.cpp
index 0aab701..a9a6ac4 100644
--- a/jni/plugins/genPCLm/src/genPCLm.cpp
+++ b/jni/plugins/genPCLm/src/genPCLm.cpp
@@ -60,9 +60,8 @@ static ubyte *shiftStripByLeftMargin(ubyte *ptrToStrip, sint32 currSourceWidth,
if (destColorSpace == grayScale) {
scanLineWidth = currMediaWidth;
-
// Allocate a full strip
- newStrip = (ubyte *) malloc(scanLineWidth * currStripHeight);
+ newStrip = (ubyte *) malloc((scanLineWidth * currStripHeight) + leftMargin);
memset(newStrip, 0xff, scanLineWidth * currStripHeight);
for (int i = 0; i < numLinesThisCall; i++) {
toPtr = newStrip + leftMargin + (i * currMediaWidth);
@@ -73,7 +72,7 @@ static ubyte *shiftStripByLeftMargin(ubyte *ptrToStrip, sint32 currSourceWidth,
scanLineWidth = currMediaWidth * 3;
sint32 srcScanlineWidth = currSourceWidth * 3;
sint32 shiftAmount = leftMargin * 3;
- newStrip = (ubyte *) malloc(scanLineWidth * currStripHeight);
+ newStrip = (ubyte *) malloc((scanLineWidth * currStripHeight) + shiftAmount);
memset(newStrip, 0xff, scanLineWidth * currStripHeight);
for (int i = 0; i < numLinesThisCall; i++) {
toPtr = newStrip + shiftAmount + (i * scanLineWidth);