Merge pull request #2331 from henrygab/fix_buffer_overflow

Decoder must not write more bit than requested
This commit is contained in:
Iceman 2024-03-14 08:43:11 +01:00 committed by GitHub
commit 4d983b90a6
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -687,11 +687,15 @@ static int em4x70_receive(uint8_t *bits, size_t length) {
// pulse length 1.5 -> 2 bits + flip edge detection
if (edge == FALLING_EDGE) {
bits[bit_pos++] = 0;
bits[bit_pos++] = 0;
if (bit_pos < length) {
bits[bit_pos++] = 0;
}
edge = RISING_EDGE;
} else {
bits[bit_pos++] = 1;
bits[bit_pos++] = 1;
if (bit_pos < length) {
bits[bit_pos++] = 1;
}
edge = FALLING_EDGE;
}
@ -700,10 +704,14 @@ static int em4x70_receive(uint8_t *bits, size_t length) {
// pulse length of 2 -> two bits
if (edge == FALLING_EDGE) {
bits[bit_pos++] = 0;
bits[bit_pos++] = 1;
if (bit_pos < length) {
bits[bit_pos++] = 1;
}
} else {
bits[bit_pos++] = 1;
bits[bit_pos++] = 0;
if (bit_pos < length) {
bits[bit_pos++] = 0;
}
}
} else {