Comments (2)
Hello everyone,
I have experienced a manipulation of a local variable caused by buffer overflows in the functions below. The packet
array is too short to be used for the reply and hence overrides memory on the stack.
I solved this issue by using another buffer to temporarily store the reply packet.
`uint8_t Adafruit_Fingerprint::getImage(void) {
uint8_t packet[] = {FINGERPRINT_GETIMAGE};
writePacket(theAddress, FINGERPRINT_COMMANDPACKET, 3, packet);
uint8_t len = getReply(packet);
if ((len != 1) && (packet[0] != FINGERPRINT_ACKPACKET))
return -1;
return packet[1];
}
uint8_t Adafruit_Fingerprint::image2Tz(uint8_t slot) {
uint8_t packet[] = {FINGERPRINT_IMAGE2TZ, slot};
writePacket(theAddress, FINGERPRINT_COMMANDPACKET, sizeof(packet)+2, packet);
uint8_t len = getReply(packet);
if ((len != 1) && (packet[0] != FINGERPRINT_ACKPACKET))
return -1;
return packet[1];
}
uint8_t Adafruit_Fingerprint::createModel(void) {
uint8_t packet[] = {FINGERPRINT_REGMODEL};
writePacket(theAddress, FINGERPRINT_COMMANDPACKET, sizeof(packet)+2, packet);
uint8_t len = getReply(packet);
if ((len != 1) && (packet[0] != FINGERPRINT_ACKPACKET))
return -1;
return packet[1];
}
uint8_t Adafruit_Fingerprint::storeModel(uint16_t id) {
uint8_t packet[] = {FINGERPRINT_STORE, 0x01, id >> 8, id & 0xFF};
writePacket(theAddress, FINGERPRINT_COMMANDPACKET, sizeof(packet)+2, packet);
uint8_t len = getReply(packet);
if ((len != 1) && (packet[0] != FINGERPRINT_ACKPACKET))
return -1;
return packet[1];
}`
from adafruit-fingerprint-sensor-library.
hiya you may want to try the latest version we just committed. it fixes many bugs - thx!
from adafruit-fingerprint-sensor-library.
Related Issues (20)
- arduino issue HOT 1
- Library compatible with PID 4750 sensor? HOT 5
- Library not working well for sensor GROW R503 on ATMega 2560 when using real UART HOT 1
- Copy fingerprint data to a new sensor HOT 1
- Cannot use setBaudRate() to change from default 57600bps HOT 9
- 1:1 matching HOT 1
- Fingerprint sensor constantly flashing. HOT 4
- Incorrectly matched fingerprints for: Rugged Panel Mount Fingerprint Sensor with Bi-Color LED Ring - R503 HOT 1
- More colors for LED color control HOT 3
- Type error: uint8_t - cycle is forever HOT 1
- storeModel by fingerprint templae HOT 1
- Library not suitable for asynchronous aplications HOT 1
- R503 support for Automatic registration template - AutoEnroll (0x31) & Automatic fingerprint verification - AutoIdentify (0x32)
- Adding fingerprint template transfer functionality to the Adafruit-Fingerprint library HOT 1
- check sum HOT 1
- Errors that aren't FINGERPRINT_PACKETRECIEVEERR are not returned
- Template Count = 0 when templates exist HOT 5
- Change the Security Level - Code Line HOT 2
- Enroll to first free model HOT 1
- show_fingerprint_templates example writes beyond array bounds HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from adafruit-fingerprint-sensor-library.