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