diff options
| author | Kurtis Schlepp <mopriadevteam@gmail.com> | 2021-06-24 18:31:04 +0000 |
|---|---|---|
| committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2021-06-24 18:31:04 +0000 |
| commit | 3f82559a3ef9bf63167f18d16e143a22fde6a258 (patch) | |
| tree | 2e63b717094323d46291e523e1bcf7178b93d118 | |
| parent | 76de2be49106c740fe1725730976c508400988b0 (diff) | |
| parent | 735ca398d101c05baa51d0f196c1f2ab5a8d0779 (diff) | |
| download | platform_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.cpp | 5 |
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); |
