Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 29 Jun 2005 15:06:52 -0400 (EDT)
From:      "Andrew R. Reiter" <arr@watson.org>
To:        freebsd-current@FreeBSD.org
Subject:   [CFT] NDIS optional header length related fixups
Message-ID:  <20050629145451.J85841@fledge.watson.org>

next in thread | raw e-mail | index | archive | help
  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--0-2052280901-1120072012=:85841
Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed

Calling NDIS -CURRENT users,

Attached is a patch that should fix any possible issues with 
mis-calculating offsets or sizes when dealing with anything 
'image_optional_header' related in the PE loading code.  The reason for 
the patch is that the optional header can have a varying length due to the 
lack of requiring the existence of all the 'image_data_directory's to 
exist within a binary.  As far as I can tell, most drivers tend to include 
all, but due to the basic idea that there can be less than 
IMAGE_DIRECTORY_ENTRIES_MAX data directories in the optional header, we 
should at least make an attempt at preemptively catch any bugs that might 
arise due to improper pointer calculation.

If you could, please give it a run in your tree!

The patch is also located at:
   http://www.watson.org/~arr/ndis_opthdrsz.diff

I guess let me know if anyone has any problems with this working (or 
other).

Cheers,
Andrew

--
Andrew R. Reiter
arr@watson.org
--0-2052280901-1120072012=:85841
Content-Type: TEXT/PLAIN; charset=US-ASCII; name=ndis_opthdrsz.diff
Content-Transfer-Encoding: BASE64
Content-ID: <20050629150652.S85841@fledge.watson.org>
Content-Description: 
Content-Disposition: attachment; filename=ndis_opthdrsz.diff

SW5kZXg6IHBlX3Zhci5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpSQ1Mg
ZmlsZTogL2hvbWUvbmN2cy9zcmMvc3lzL2NvbXBhdC9uZGlzL3BlX3Zhci5o
LHYNCnJldHJpZXZpbmcgcmV2aXNpb24gMS4xMw0KZGlmZiAtdSAtdSAtcjEu
MTMgcGVfdmFyLmgNCi0tLSBwZV92YXIuaAkxMSBBcHIgMjAwNSAwMjowMjoz
NCAtMDAwMAkxLjEzDQorKysgcGVfdmFyLmgJMjkgSnVuIDIwMDUgMTg6NDc6
NTggLTAwMDANCkBAIC0yMTQsNiArMjE0LDEwIEBADQogDQogdHlwZWRlZiBz
dHJ1Y3QgaW1hZ2VfbnRfaGVhZGVyIGltYWdlX250X2hlYWRlcjsNCiANCisj
ZGVmaW5lCUlNQUdFX1NJWkVPRl9OVF9IRUFERVIobnRoZHIpCQkJCQlcDQor
CShvZmZzZXRvZihpbWFnZV9udF9oZWFkZXIsIGluaF9vcHRpb25hbGhkcikg
KwkJCVwNCisJICAoKGltYWdlX250X2hlYWRlciAqKShudGhkcikpLT5pbmhf
ZmlsZWhkci5pZmhfb3B0aW9uYWxoZHJsZW4pDQorDQogLyogRGlyZWN0b3J5
IEVudHJpZXMgKi8NCiANCiAjZGVmaW5lIElNQUdFX0RJUkVDVE9SWV9FTlRS
WV9FWFBPUlQgICAgICAgICAwICAgLyogRXhwb3J0IERpcmVjdG9yeSAqLw0K
QEAgLTI4MSw2ICsyODUsMTIgQEANCiANCiAjZGVmaW5lIElNQUdFX1NJWkVP
Rl9TRUNUSU9OX0hFQURFUiAgICAgICAgICA0MA0KIA0KKyNkZWZpbmUgSU1B
R0VfRklSU1RfU0VDVElPTihudGhkcikJCQkJCVwNCisJKChpbWFnZV9zZWN0
aW9uX2hlYWRlciAqKSgodm1fb2Zmc2V0X3QpKG50aGRyKSArCQlcDQorCSAg
b2Zmc2V0b2YoaW1hZ2VfbnRfaGVhZGVyLCBpbmhfb3B0aW9uYWxoZHIpICsJ
CQlcDQorCSAgKChpbWFnZV9udF9oZWFkZXIgKikobnRoZHIpKS0+aW5oX2Zp
bGVoZHIuaWZoX29wdGlvbmFsaGRybGVuKSkNCisNCisNCiAvKg0KICAqIElt
cG9ydCBmb3JtYXQNCiAgKi8NCkluZGV4OiBzdWJyX3BlLmMNCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0NClJDUyBmaWxlOiAvaG9tZS9uY3ZzL3NyYy9zeXMv
Y29tcGF0L25kaXMvc3Vicl9wZS5jLHYNCnJldHJpZXZpbmcgcmV2aXNpb24g
MS4xMQ0KZGlmZiAtdSAtdSAtcjEuMTEgc3Vicl9wZS5jDQotLS0gc3Vicl9w
ZS5jCTI0IEZlYiAyMDA1IDE3OjU4OjI3IC0wMDAwCTEuMTENCisrKyBzdWJy
X3BlLmMJMjkgSnVuIDIwMDUgMTg6NDc6NTggLTAwMDANCkBAIC0xNDIsNyAr
MTQyLDcgQEANCiAJbnRfaGRyID0gKGltYWdlX250X2hlYWRlciAqKShpbWdi
YXNlICsgZG9zX2hkci0+aWRoX2xmYW5ldyk7DQogDQogCWJjb3B5ICgoY2hh
ciAqKSZudF9oZHItPmluaF9vcHRpb25hbGhkciwgKGNoYXIgKiloZHIsDQot
CSAgICBzaXplb2YoaW1hZ2Vfb3B0aW9uYWxfaGVhZGVyKSk7DQorCSAgICBu
dF9oZHItPmluaF9maWxlaGRyLmlmaF9vcHRpb25hbGhkcmxlbik7DQogDQog
CXJldHVybigwKTsNCiB9DQpAQCAtMTcwLDggKzE3MCw3IEBADQogCW50X2hk
ciA9IChpbWFnZV9udF9oZWFkZXIgKikoaW1nYmFzZSArIGRvc19oZHItPmlk
aF9sZmFuZXcpOw0KIA0KIAliY29weSAoKGNoYXIgKikmbnRfaGRyLT5pbmhf
ZmlsZWhkciwgKGNoYXIgKiloZHIsDQotCSAgICBzaXplb2YoaW1hZ2VfZmls
ZV9oZWFkZXIpKTsNCi0NCisJICAgIElNQUdFX1NJWkVPRl9OVF9IRUFERVIo
bnRfaGRyKSk7DQogCXJldHVybigwKTsNCiB9DQogDQpAQCAtMTk3LDggKzE5
Niw3IEBADQogDQogCWRvc19oZHIgPSAoaW1hZ2VfZG9zX2hlYWRlciAqKWlt
Z2Jhc2U7DQogCW50X2hkciA9IChpbWFnZV9udF9oZWFkZXIgKikoaW1nYmFz
ZSArIGRvc19oZHItPmlkaF9sZmFuZXcpOw0KLQlzZWN0X2hkciA9IChpbWFn
ZV9zZWN0aW9uX2hlYWRlciAqKSgodm1fb2Zmc2V0X3QpbnRfaGRyICsNCi0J
ICAgIHNpemVvZihpbWFnZV9udF9oZWFkZXIpKTsNCisJc2VjdF9oZHIgPSBJ
TUFHRV9GSVJTVF9TRUNUSU9OKG50X2hkcik7DQogDQogCWJjb3B5ICgoY2hh
ciAqKXNlY3RfaGRyLCAoY2hhciAqKWhkciwgc2l6ZW9mKGltYWdlX3NlY3Rp
b25faGVhZGVyKSk7DQogDQpAQCAtMjgwLDggKzI3OCw3IEBADQogDQogCWRv
c19oZHIgPSAoaW1hZ2VfZG9zX2hlYWRlciAqKWltZ2Jhc2U7DQogCW50X2hk
ciA9IChpbWFnZV9udF9oZWFkZXIgKikoaW1nYmFzZSArIGRvc19oZHItPmlk
aF9sZmFuZXcpOw0KLQlzZWN0X2hkciA9IChpbWFnZV9zZWN0aW9uX2hlYWRl
ciAqKSgodm1fb2Zmc2V0X3QpbnRfaGRyICsNCi0JICAgIHNpemVvZihpbWFn
ZV9udF9oZWFkZXIpKTsNCisJc2VjdF9oZHIgPSBJTUFHRV9GSVJTVF9TRUNU
SU9OKG50X2hkcik7DQogDQogCS8qDQogCSAqIFRoZSB0ZXN0IGhlcmUgaXMg
dG8gc2VlIGlmIHRoZSBSVkEgZmFsbHMgc29tZXdoZXJlDQpAQCAtMzM5LDgg
KzMzNiw3IEBADQogDQogCWRvc19oZHIgPSAoaW1hZ2VfZG9zX2hlYWRlciAq
KWltZ2Jhc2U7DQogCW50X2hkciA9IChpbWFnZV9udF9oZWFkZXIgKikoaW1n
YmFzZSArIGRvc19oZHItPmlkaF9sZmFuZXcpOw0KLQlzZWN0X2hkciA9IChp
bWFnZV9zZWN0aW9uX2hlYWRlciAqKSgodm1fb2Zmc2V0X3QpbnRfaGRyICsN
Ci0JICAgIHNpemVvZihpbWFnZV9udF9oZWFkZXIpKTsNCisJc2VjdF9oZHIg
PSBJTUFHRV9GSVJTVF9TRUNUSU9OKG50X2hkcik7DQogDQogCWZvciAoaSA9
IDA7IGkgPCBzZWN0aW9uczsgaSsrKSB7DQogCQlpZiAoIXN0cmNtcCAoKGNo
YXIgKikmc2VjdF9oZHItPmlzaF9uYW1lLCBuYW1lKSkgew0K

--0-2052280901-1120072012=:85841--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20050629145451.J85841>