Revision 277
New buffer size, prevents buffer overflows in cardreader
main.c | ||
---|---|---|
154 | 154 |
|
155 | 155 |
int main(void) { |
156 | 156 |
uint8_t mbuf[PROGD_PACKET_SIZE]; |
157 |
uint8_t cbuf[100];
|
|
157 |
uint8_t cbuf[20];
|
|
158 | 158 |
uint8_t clen; |
159 |
int8_t cret; |
|
159 | 160 |
uint8_t resp; |
160 | 161 |
uint8_t c; |
161 | 162 |
uint8_t len; |
... | ... | |
177 | 178 |
read_card = 1; |
178 | 179 |
if (cr_flag != CR_NONE) { |
179 | 180 |
read_card = 0; |
180 |
if (parse_card(cbuf, &clen) < 0) { |
|
181 |
if ((cret = parse_card(cbuf, &clen)) < 0) { |
|
182 |
switch (cret) { |
|
183 |
case CR_ERR_BAD_PARITY: |
|
184 |
toggle_led(LED_GREEN, ON); |
|
185 |
break; |
|
186 |
case CR_ERR_NO_START: |
|
187 |
toggle_led(LED_YELLOW, ON); |
|
188 |
break; |
|
189 |
case CR_ERR_NO_STOP: |
|
190 |
toggle_led(LED_RED, ON); |
|
191 |
break; |
|
192 |
} |
|
181 | 193 |
rs485_send_byte('F'); |
182 | 194 |
} else { |
183 | 195 |
for (c = 0; c < clen; c++) { |
Also available in: Unified diff