From 9cd0b1809c6eec83b4e5cd88dd39db1cdaddb492 Mon Sep 17 00:00:00 2001 From: David Ward Date: Tue, 8 Mar 2022 19:00:00 -0500 Subject: [PATCH] lexmark_low: Adjust calculation of bytes available in read buffer GCC warns that an unsigned value is passed to abs(), which may not be intended. To resolve this warning, adjust the code so abs() is not used and the behavior is more explicit. --- backend/lexmark_low.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/backend/lexmark_low.c b/backend/lexmark_low.c index 73366fa1a..246455f1f 100644 --- a/backend/lexmark_low.c +++ b/backend/lexmark_low.c @@ -5252,12 +5252,12 @@ read_buffer_bytes_available (Read_Buffer * rb) if (rb->empty) return rb->size; - else if ((size_t) abs (rb->writeptr - rb->readptr) < rb->linesize) - return 0; /* ptrs are less than one line apart */ else if (rb->writeptr < rb->readptr) - return (rb->readptr - rb->writeptr - rb->linesize); + return (size_t)(rb->readptr - rb->writeptr) < rb->linesize ? 0 : + (size_t)(rb->readptr - rb->writeptr) - rb->linesize; else - return (rb->size + rb->readptr - rb->writeptr - rb->linesize); + return (size_t)(rb->writeptr - rb->readptr) < rb->linesize ? 0 : + rb->size - (size_t)(rb->writeptr - rb->readptr) - rb->linesize; } SANE_Status