Skip to content

Commit 3e4adc6

Browse files
authored
Merge pull request #15 from dihm/fast-serial-null-terminate
Add null terminator to strings returned from fast_serial_read_until
2 parents aea505b + e306421 commit 3e4adc6

File tree

2 files changed

+3
-1
lines changed

2 files changed

+3
-1
lines changed

prawn_do/fast_serial.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ uint32_t fast_serial_read(const char * buffer, uint32_t buffer_size){
3535
// Read bytes until terminator reached (blocks until terminator or buffer_size is reached)
3636
uint32_t fast_serial_read_until(char * buffer, uint32_t buffer_size, char until){
3737
uint32_t buffer_idx = 0;
38-
while(buffer_idx < buffer_size){
38+
while(buffer_idx < buffer_size - 1){
3939
while(fast_serial_read_available() > 0){
4040
int32_t next_char = tud_cdc_read_char();
4141

@@ -51,6 +51,7 @@ uint32_t fast_serial_read_until(char * buffer, uint32_t buffer_size, char until)
5151
}
5252
fast_serial_task();
5353
}
54+
buffer[buffer_idx] = '\0'; // Null terminate string
5455
return buffer_idx;
5556
}
5657

prawn_do/fast_serial.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ static inline uint32_t fast_serial_read_atomic(const char * buffer, uint32_t buf
4646
uint32_t fast_serial_read(const char * buffer, uint32_t buffer_size);
4747

4848
// Read bytes until terminator reached (blocks until terminator or buffer_size is reached)
49+
// Adds null terminator to buffer after read completes (reserving one byte in buffer for this)
4950
uint32_t fast_serial_read_until(char * buffer, uint32_t buffer_size, char until);
5051

5152
// Clear read FIFO (without reading it)

0 commit comments

Comments
 (0)