The global buffer is 65536 bytes in size and not only 1 byte. This statement
evaluated to a negative value which was casted to an unsigned value (aka...
very large value).
This is a regression was introduced in 71dbc00fd879f1e592b07d8397f724fb3f69ac64
("alfred: Use strncpy instead of strcpy for string").
Signed-off-by: Sven Eckelmann <[email protected]>
---
v2: Fixed prefix of the commit subject
gpsd/alfred-gpsd.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/gpsd/alfred-gpsd.c b/gpsd/alfred-gpsd.c
index 84a0ded..d6cdfd6 100644
--- a/gpsd/alfred-gpsd.c
+++ b/gpsd/alfred-gpsd.c
@@ -301,7 +301,7 @@ static void gpsd_read_gpsd(struct globals *globals)
size_t cnt;
bool eol = false;
char buf[4096];
- const size_t tpv_size = sizeof(*globals->buf) -
+ const size_t tpv_size = sizeof(globals->buf) -
sizeof(*globals->push) -
sizeof(struct alfred_data) -
sizeof(*globals->gpsd_data);
@@ -450,7 +450,7 @@ static int gpsd_server(struct globals *globals)
int max_fd, ret;
const size_t overhead = sizeof(*globals->push) +
sizeof(struct alfred_data);
- const size_t tpv_size = sizeof(*globals->buf) -
+ const size_t tpv_size = sizeof(globals->buf) -
sizeof(*globals->push) -
sizeof(struct alfred_data) -
sizeof(*globals->gpsd_data);
--
2.0.0