Fix for Bug 688930 mswinpr2 allocates wrong memory size for DEVMODE
"Russell Lang" <[email protected]> Sat, 09 Dec 2006 15:26:27 +1100
| Newsgroups | gmane.comp.printing.ghostscript.patches |
|---|---|
| Message-ID | <[email protected]> |
--Message-Boundary-22828 Content-type: text/plain; charset=US-ASCII Content-transfer-encoding: 7BIT Content-description: Mail message body This has been committed: Log message: Fix bug 688930 mswinpr2 allocates wrong memory size for DEVMODE. A printer DEVMODE structure is usually bigger than sizeof(DEVMODE) due to printer private extra data. Allocate the correct size DEVMODE to include this private data. Remove old Windows 3.1 and Win32s code. Russell Lang [email protected] Ghostgum Software Pty Ltd http://www.ghostgum.com.au/ --Message-Boundary-22828 Content-type: Application/Octet-stream; name="winpr2alloc.txt"; type=Text Content-disposition: attachment; filename="winpr2alloc.txt" Content-transfer-encoding: BASE64 ZGlmZiAtdSBsOnNyYy9nZGV2d3ByMi5jIHNyYy9nZGV2d3ByMi5jDQotLS0gbDpzcmMvZ2Rl dndwcjIuYwlTYXQgSnVsIDE1IDA5OjQ1OjI2IDIwMDYNCisrKyBzcmMvZ2RldndwcjIuYwlT YXQgRGVjIDA5IDAzOjM2OjEzIDIwMDYNCkBAIC04NjMsNyArODYzLDcgQEANCiAgICAgY2hh ciAqb3V0cHV0Ow0KICAgICBjaGFyICpkZXZjYXA7DQogICAgIGludCBkZXZjYXBzaXplOw0K LSAgICBpbnQgc2l6ZTsNCisgICAgaW50IGRldm1vZGVfc2l6ZTsNCiANCiAgICAgaW50IGks IG47DQogICAgIFBPSU5UICpwcDsNCkBAIC04NzMsMTEgKzg3Myw3IEBADQogICAgIGludCBw YXBlcnNpemU7DQogICAgIGNoYXIgcGFwZXJuYW1lWzY0XTsNCiAgICAgY2hhciBkcnZuYW1l WzMyXTsNCi0gICAgSElOU1RBTkNFIGhsaWI7DQotICAgIExQRk5ERVZNT0RFIHBmbkV4dERl dmljZU1vZGU7DQotICAgIExQRk5ERVZDQVBTIHBmbkRldmljZUNhcGFiaWxpdGllczsNCiAg ICAgTFBERVZNT0RFIHBvZGV2bW9kZSwgcGlkZXZtb2RlOw0KLQ0KICAgICBIQU5ETEUgaHBy aW50ZXI7DQogDQogICAgIC8qIGZpcnN0IHRyeSB0byBkZXJpdmUgdGhlIHByaW50ZXIgbmFt ZSBmcm9tIC1zT3V0cHV0RmlsZT0gKi8NCkBAIC05MTIsNjYgKzkwOCwyOCBAQA0KICAgICBH ZXRQcm9maWxlU3RyaW5nKCJEZXZpY2VzIiwgZGV2aWNlLCAiIiwgZHJpdmVyYnVmLCBzaXpl b2YoZHJpdmVyYnVmKSk7DQogICAgIGRyaXZlciA9IHN0cnRvayhkcml2ZXJidWYsICIsIik7 DQogICAgIG91dHB1dCA9IHN0cnRvayhOVUxMLCAiLCIpOw0KLSAgICBpZiAoaXNfd2luMzJz KQ0KLSAgICB7DQotCXN0cmNweShkcnZuYW1lLCBkcml2ZXIpOw0KLQlzdHJjYXQoZHJ2bmFt ZSwgIi5kcnYiKTsNCi0JZHJpdmVyID0gZHJ2bmFtZTsNCi0gICAgfQ0KIA0KLSAgICBpZiAo IWlzX3dpbjMycykgewkJLyogV2luMzIgKi8NCi0JaWYgKCFPcGVuUHJpbnRlcihkZXZpY2Us ICZocHJpbnRlciwgTlVMTCkpDQotCSAgICByZXR1cm4gRkFMU0U7DQotCXNpemUgPSBEb2N1 bWVudFByb3BlcnRpZXMoTlVMTCwgaHByaW50ZXIsIGRldmljZSwgTlVMTCwgTlVMTCwgMCk7 DQotCWlmICgocG9kZXZtb2RlID0gZ3NfbWFsbG9jKHdkZXYtPm1lbW9yeSwgc2l6ZSwgMSwg Indpbl9wcjJfZ2V0ZGMiKSkgPT0gKExQREVWTU9ERSkgTlVMTCkgew0KLQkgICAgQ2xvc2VQ cmludGVyKGhwcmludGVyKTsNCi0JICAgIHJldHVybiBGQUxTRTsNCi0JfQ0KLQlpZiAoKHBp ZGV2bW9kZSA9IGdzX21hbGxvYyh3ZGV2LT5tZW1vcnksIHNpemUsIDEsICJ3aW5fcHIyX2dl dGRjIikpID09IChMUERFVk1PREUpIE5VTEwpIHsNCi0JICAgIGdzX2ZyZWUod2Rldi0+bWVt b3J5LCBwb2Rldm1vZGUsIHNpemUsIDEsICJ3aW5fcHIyX2dldGRjIik7DQotCSAgICBDbG9z ZVByaW50ZXIoaHByaW50ZXIpOw0KLQkgICAgcmV0dXJuIEZBTFNFOw0KLQl9DQotCURvY3Vt ZW50UHJvcGVydGllcyhOVUxMLCBocHJpbnRlciwgZGV2aWNlLCBwb2Rldm1vZGUsIE5VTEws IERNX09VVF9CVUZGRVIpOw0KLQlwZm5EZXZpY2VDYXBhYmlsaXRpZXMgPSAoTFBGTkRFVkNB UFMpIERldmljZUNhcGFiaWxpdGllczsNCi0gICAgfSBlbHNlDQotICAgIHsJCQkJLyogV2lu MTYgYW5kIFdpbjMycyAqLw0KLQkvKiBub3cgbG9hZCB0aGUgcHJpbnRlciBkcml2ZXIgKi8N Ci0JaGxpYiA9IExvYWRMaWJyYXJ5KGRyaXZlcik7DQotCWlmIChobGliIDwgKEhJTlNUQU5D RSkgSElOU1RBTkNFX0VSUk9SKQ0KLQkgICAgcmV0dXJuIEZBTFNFOw0KLQ0KLQkvKiBjYWxs IEV4dERldmljZU1vZGUoKSB0byBnZXQgZGVmYXVsdCBwYXJhbWV0ZXJzICovDQotCXBmbkV4 dERldmljZU1vZGUgPSAoTFBGTkRFVk1PREUpIEdldFByb2NBZGRyZXNzKGhsaWIsICJFeHRE ZXZpY2VNb2RlIik7DQotCWlmIChwZm5FeHREZXZpY2VNb2RlID09IChMUEZOREVWTU9ERSkg TlVMTCkgew0KLQkgICAgRnJlZUxpYnJhcnkoaGxpYik7DQotCSAgICByZXR1cm4gRkFMU0U7 DQotCX0NCi0JcGZuRGV2aWNlQ2FwYWJpbGl0aWVzID0gKExQRk5ERVZDQVBTKSBHZXRQcm9j QWRkcmVzcyhobGliLCAiRGV2aWNlQ2FwYWJpbGl0aWVzIik7DQotCWlmIChwZm5EZXZpY2VD YXBhYmlsaXRpZXMgPT0gKExQRk5ERVZDQVBTKSBOVUxMKSB7DQotCSAgICBGcmVlTGlicmFy eShobGliKTsNCi0JICAgIHJldHVybiBGQUxTRTsNCi0JfQ0KLQlzaXplID0gcGZuRXh0RGV2 aWNlTW9kZShOVUxMLCBobGliLCBOVUxMLCBkZXZpY2UsIG91dHB1dCwgTlVMTCwgTlVMTCwg MCk7DQotCWlmICgocG9kZXZtb2RlID0gZ3NfbWFsbG9jKHdkZXYtPm1lbW9yeSwgc2l6ZSwg MSwgIndpbl9wcjJfZ2V0ZGMiKSkgPT0gKExQREVWTU9ERSkgTlVMTCkgew0KLQkgICAgRnJl ZUxpYnJhcnkoaGxpYik7DQotCSAgICByZXR1cm4gRkFMU0U7DQotCX0NCi0JaWYgKChwaWRl dm1vZGUgPSBnc19tYWxsb2Mod2Rldi0+bWVtb3J5LCBzaXplLCAxLCAid2luX3ByMl9nZXRk YyIpKSA9PSAoTFBERVZNT0RFKSBOVUxMKSB7DQotCSAgICBnc19mcmVlKHdkZXYtPm1lbW9y eSwgcG9kZXZtb2RlLCBzaXplLCAxLCAid2luX3ByMl9nZXRkYyIpOw0KLQkgICAgRnJlZUxp YnJhcnkoaGxpYik7DQotCSAgICByZXR1cm4gRkFMU0U7DQotCX0NCi0JcGZuRXh0RGV2aWNl TW9kZShOVUxMLCBobGliLCBwb2Rldm1vZGUsIGRldmljZSwgb3V0cHV0LA0KLQkJCSBOVUxM LCBOVUxMLCBETV9PVVRfQlVGRkVSKTsNCisgICAgaWYgKCFPcGVuUHJpbnRlcihkZXZpY2Us ICZocHJpbnRlciwgTlVMTCkpDQorCXJldHVybiBGQUxTRTsNCisgICAgZGV2bW9kZV9zaXpl ID0gRG9jdW1lbnRQcm9wZXJ0aWVzKE5VTEwsIGhwcmludGVyLCBkZXZpY2UsIE5VTEwsIE5V TEwsIDApOw0KKyAgICBpZiAoKHBvZGV2bW9kZSA9IGdzX21hbGxvYyh3ZGV2LT5tZW1vcnks IGRldm1vZGVfc2l6ZSwgMSwgIndpbl9wcjJfZ2V0ZGMiKSkNCisJPT0gKExQREVWTU9ERSkg TlVMTCkgew0KKwlDbG9zZVByaW50ZXIoaHByaW50ZXIpOw0KKwlyZXR1cm4gRkFMU0U7DQor ICAgIH0NCisgICAgaWYgKChwaWRldm1vZGUgPSBnc19tYWxsb2Mod2Rldi0+bWVtb3J5LCBk ZXZtb2RlX3NpemUsIDEsICJ3aW5fcHIyX2dldGRjIikpCQk9PSAoTFBERVZNT0RFKSBOVUxM KSB7DQorCWdzX2ZyZWUod2Rldi0+bWVtb3J5LCBwb2Rldm1vZGUsIGRldm1vZGVfc2l6ZSwg MSwgIndpbl9wcjJfZ2V0ZGMiKTsNCisJQ2xvc2VQcmludGVyKGhwcmludGVyKTsNCisJcmV0 dXJuIEZBTFNFOw0KICAgICB9DQorICAgIERvY3VtZW50UHJvcGVydGllcyhOVUxMLCBocHJp bnRlciwgZGV2aWNlLCBwb2Rldm1vZGUsIE5VTEwsIERNX09VVF9CVUZGRVIpOw0KIA0KICAg ICAvKiBub3cgZmluZCBvdXQgd2hhdCBwYXBlciBzaXplcyBhcmUgYXZhaWxhYmxlICovDQot ICAgIGRldmNhcHNpemUgPSBwZm5EZXZpY2VDYXBhYmlsaXRpZXMoZGV2aWNlLCBvdXRwdXQs IERDX1BBUEVSU0laRSwgTlVMTCwgTlVMTCk7DQorICAgIGRldmNhcHNpemUgPSBEZXZpY2VD YXBhYmlsaXRpZXMoZGV2aWNlLCBvdXRwdXQsIERDX1BBUEVSU0laRSwgTlVMTCwgTlVMTCk7 DQogICAgIGRldmNhcHNpemUgKj0gc2l6ZW9mKFBPSU5UKTsNCiAgICAgaWYgKChkZXZjYXAg PSBnc19tYWxsb2Mod2Rldi0+bWVtb3J5LCBkZXZjYXBzaXplLCAxLCAid2luX3ByMl9nZXRk YyIpKSA9PSAoTFBCWVRFKSBOVUxMKQ0KIAlyZXR1cm4gRkFMU0U7DQotICAgIG4gPSBwZm5E ZXZpY2VDYXBhYmlsaXRpZXMoZGV2aWNlLCBvdXRwdXQsIERDX1BBUEVSU0laRSwgZGV2Y2Fw LCBOVUxMKTsNCisgICAgbiA9IERldmljZUNhcGFiaWxpdGllcyhkZXZpY2UsIG91dHB1dCwg RENfUEFQRVJTSVpFLCBkZXZjYXAsIE5VTEwpOw0KICAgICBwYXBlcndpZHRoID0gKGludCko d2Rldi0+TWVkaWFTaXplWzBdICogMjU0IC8gNzIpOw0KICAgICBwYXBlcmhlaWdodCA9IChp bnQpKHdkZXYtPk1lZGlhU2l6ZVsxXSAqIDI1NCAvIDcyKTsNCiAgICAgcGFwZXJuYW1lWzBd ID0gJ1wwJzsNCkBAIC0xMDA2LDI2ICs5NjQsMjYgQEANCiAgICAgZ3NfZnJlZSh3ZGV2LT5t ZW1vcnksIGRldmNhcCwgZGV2Y2Fwc2l6ZSwgMSwgIndpbl9wcjJfZ2V0ZGMiKTsNCiAgICAg DQogICAgIC8qIGdldCB0aGUgZG1QYXBlclNpemUgKi8NCi0gICAgZGV2Y2Fwc2l6ZSA9IHBm bkRldmljZUNhcGFiaWxpdGllcyhkZXZpY2UsIG91dHB1dCwgRENfUEFQRVJTLCBOVUxMLCBO VUxMKTsNCisgICAgZGV2Y2Fwc2l6ZSA9IERldmljZUNhcGFiaWxpdGllcyhkZXZpY2UsIG91 dHB1dCwgRENfUEFQRVJTLCBOVUxMLCBOVUxMKTsNCiAgICAgZGV2Y2Fwc2l6ZSAqPSBzaXpl b2YoV09SRCk7DQogICAgIGlmICgoZGV2Y2FwID0gZ3NfbWFsbG9jKHdkZXYtPm1lbW9yeSwg ZGV2Y2Fwc2l6ZSwgMSwgIndpbl9wcjJfZ2V0ZGMiKSkgPT0gKExQQllURSkgTlVMTCkNCiAJ cmV0dXJuIEZBTFNFOw0KLSAgICBuID0gcGZuRGV2aWNlQ2FwYWJpbGl0aWVzKGRldmljZSwg b3V0cHV0LCBEQ19QQVBFUlMsIGRldmNhcCwgTlVMTCk7DQorICAgIG4gPSBEZXZpY2VDYXBh YmlsaXRpZXMoZGV2aWNlLCBvdXRwdXQsIERDX1BBUEVSUywgZGV2Y2FwLCBOVUxMKTsNCiAg ICAgaWYgKChwYXBlcmluZGV4ID49IDApICYmIChwYXBlcmluZGV4IDwgbikpDQogCXBhcGVy c2l6ZSA9ICgoV09SRCAqKSBkZXZjYXApW3BhcGVyaW5kZXhdOw0KICAgICBnc19mcmVlKHdk ZXYtPm1lbW9yeSwgZGV2Y2FwLCBkZXZjYXBzaXplLCAxLCAid2luX3ByMl9nZXRkYyIpOw0K IA0KICAgICAvKiBnZXQgdGhlIHBhcGVyIG5hbWUgKi8NCi0gICAgZGV2Y2Fwc2l6ZSA9IHBm bkRldmljZUNhcGFiaWxpdGllcyhkZXZpY2UsIG91dHB1dCwgRENfUEFQRVJOQU1FUywgTlVM TCwgTlVMTCk7DQorICAgIGRldmNhcHNpemUgPSBEZXZpY2VDYXBhYmlsaXRpZXMoZGV2aWNl LCBvdXRwdXQsIERDX1BBUEVSTkFNRVMsIE5VTEwsIE5VTEwpOw0KICAgICBkZXZjYXBzaXpl ICo9IDY0Ow0KICAgICBpZiAoKGRldmNhcCA9IGdzX21hbGxvYyh3ZGV2LT5tZW1vcnksIGRl dmNhcHNpemUsIDEsICJ3aW5fcHIyX2dldGRjIikpID09IChMUEJZVEUpIE5VTEwpDQogCXJl dHVybiBGQUxTRTsNCi0gICAgbiA9IHBmbkRldmljZUNhcGFiaWxpdGllcyhkZXZpY2UsIG91 dHB1dCwgRENfUEFQRVJOQU1FUywgZGV2Y2FwLCBOVUxMKTsNCisgICAgbiA9IERldmljZUNh cGFiaWxpdGllcyhkZXZpY2UsIG91dHB1dCwgRENfUEFQRVJOQU1FUywgZGV2Y2FwLCBOVUxM KTsNCiAgICAgaWYgKChwYXBlcmluZGV4ID49IDApICYmIChwYXBlcmluZGV4IDwgbikpDQog CXN0cmNweShwYXBlcm5hbWUsIGRldmNhcCArIHBhcGVyaW5kZXggKiA2NCk7DQogICAgIGdz X2ZyZWUod2Rldi0+bWVtb3J5LCBkZXZjYXAsIGRldmNhcHNpemUsIDEsICJ3aW5fcHIyX2dl dGRjIik7DQogDQotICAgIG1lbWNweShwaWRldm1vZGUsIHBvZGV2bW9kZSwgc2l6ZSk7DQor ICAgIG1lbWNweShwaWRldm1vZGUsIHBvZGV2bW9kZSwgZGV2bW9kZV9zaXplKTsNCiANCiAg ICAgcGlkZXZtb2RlLT5kbUZpZWxkcyA9IDA7DQogICAgIA0KQEAgLTEwNjgsNDAgKzEwMjYs MjYgQEANCiAgICAgDQogICAgIHdpbl9wcjJfdXBkYXRlX3dpbih3ZGV2LCBwaWRldm1vZGUp Ow0KICAgICANCi0gICAgaWYgKCFpc193aW4zMnMpIHsNCi0JDQotCS8qIG1lcmdlIHRoZSBl bnRyaWVzICovDQotCURvY3VtZW50UHJvcGVydGllcyhOVUxMLCBocHJpbnRlciwgZGV2aWNl LCBwb2Rldm1vZGUsIHBpZGV2bW9kZSwgRE1fSU5fQlVGRkVSIHwgRE1fT1VUX0JVRkZFUik7 DQotCUNsb3NlUHJpbnRlcihocHJpbnRlcik7DQotCQ0KLQkvKiBub3cgZ2V0IGEgREMgKi8N Ci0Jd2Rldi0+aGRjcHJuID0gQ3JlYXRlREMoZHJpdmVyLCBkZXZpY2UsIE5VTEwsIHBvZGV2 bW9kZSk7DQotICAgIH0gZWxzZQ0KLSAgICB7CQkJCS8qIFdpbjE2IGFuZCBXaW4zMnMgKi8N Ci0JcGZuRXh0RGV2aWNlTW9kZShOVUxMLCBobGliLCBwb2Rldm1vZGUsIGRldmljZSwgb3V0 cHV0LA0KLQkJCSBwaWRldm1vZGUsIE5VTEwsIERNX0lOX0JVRkZFUiB8IERNX09VVF9CVUZG RVIpOw0KLQkvKiByZWxlYXNlIHRoZSBwcmludGVyIGRyaXZlciAqLw0KLQlGcmVlTGlicmFy eShobGliKTsNCi0JLyogbm93IGdldCBhIERDICovDQotCWlmIChpc193aW4zMnMpDQotCSAg ICBzdHJ0b2soZHJpdmVyLCAiLiIpOwkvKiByZW1vdmUgLmRydiAqLw0KLQl3ZGV2LT5oZGNw cm4gPSBDcmVhdGVEQyhkcml2ZXIsIGRldmljZSwgb3V0cHV0LCBwb2Rldm1vZGUpOw0KLSAg ICB9DQorICAgIC8qIG1lcmdlIHRoZSBlbnRyaWVzICovDQorICAgIERvY3VtZW50UHJvcGVy dGllcyhOVUxMLCBocHJpbnRlciwgZGV2aWNlLCBwb2Rldm1vZGUsIHBpZGV2bW9kZSwgRE1f SU5fQlVGRkVSIHwgRE1fT1VUX0JVRkZFUik7DQorICAgIENsb3NlUHJpbnRlcihocHJpbnRl cik7DQogICAgIA0KLSAgICBpZiAod2Rldi0+d2luMzJfaGRldm1vZGUgPT0gTlVMTCkgew0K LQl3ZGV2LT53aW4zMl9oZGV2bW9kZSA9IEdsb2JhbEFsbG9jKDAsIHNpemVvZihERVZNT0RF KSk7DQotICAgIH0NCisgICAgLyogbm93IGdldCBhIERDICovDQorICAgIHdkZXYtPmhkY3By biA9IENyZWF0ZURDKGRyaXZlciwgZGV2aWNlLCBOVUxMLCBwb2Rldm1vZGUpOw0KKyAgICAN CisgICAgaWYgKHdkZXYtPndpbjMyX2hkZXZtb2RlID09IE5VTEwpDQorCXdkZXYtPndpbjMy X2hkZXZtb2RlID0gR2xvYmFsQWxsb2MoMCwgZGV2bW9kZV9zaXplKTsNCiAgICAgDQogICAg IGlmICh3ZGV2LT53aW4zMl9oZGV2bW9kZSkgew0KIAlMUERFVk1PREUgcGRldm1vZGUgPSAo TFBERVZNT0RFKSBHbG9iYWxMb2NrKHdkZXYtPndpbjMyX2hkZXZtb2RlKTsNCiAJaWYgKHBk ZXZtb2RlKSB7DQotCSAgICBtZW1jcHkocGRldm1vZGUsIHBvZGV2bW9kZSwgc2l6ZW9mKERF Vk1PREUpKTsNCisJICAgIG1lbWNweShwZGV2bW9kZSwgcG9kZXZtb2RlLCBkZXZtb2RlX3Np emUpOw0KIAkgICAgR2xvYmFsVW5sb2NrKHdkZXYtPndpbjMyX2hkZXZtb2RlKTsNCiAJfQ0K ICAgICB9DQogDQotICAgIGdzX2ZyZWUod2Rldi0+bWVtb3J5LCBwaWRldm1vZGUsIHNpemUs IDEsICJ3aW5fcHIyX2dldGRjIik7DQotICAgIGdzX2ZyZWUod2Rldi0+bWVtb3J5LCBwb2Rl dm1vZGUsIHNpemUsIDEsICJ3aW5fcHIyX2dldGRjIik7DQorICAgIGdzX2ZyZWUod2Rldi0+ bWVtb3J5LCBwaWRldm1vZGUsIGRldm1vZGVfc2l6ZSwgMSwgIndpbl9wcjJfZ2V0ZGMiKTsN CisgICAgZ3NfZnJlZSh3ZGV2LT5tZW1vcnksIHBvZGV2bW9kZSwgZGV2bW9kZV9zaXplLCAx LCAid2luX3ByMl9nZXRkYyIpOw0KIA0KICAgICBpZiAod2Rldi0+aGRjcHJuICE9IChIREMp IE5VTEwpDQogCXJldHVybiBUUlVFOwkJLyogc3VjY2VzcyAqLw0K --Message-Boundary-22828 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ gs-code-review mailing list [email protected] http://www.ghostscript.com/mailman/listinfo/gs-code-review --Message-Boundary-22828--