URL: <https://savannah.gnu.org/bugs/?66417>
Summary: incorrect calloc use?
Group: GNU Screen
Submitter: themusicgod1
Submitted: Wed 06 Nov 2024 01:08:49 PM CST
Category: None
Severity: 3 - Normal
Priority: 5 - Normal
Status: None
Privacy: Public
Assigned to: None
Open/Closed: Open
Discussion Lock: Any
Release: 5.0.0
Fixed Release: None
Planned Release: None
Work Required: None
_______________________________________________________
Follow-up Comments:
-------------------------------------------------------
Date: Wed 06 Nov 2024 01:08:49 PM CST By: Jeffrey Cliff <themusicgod1>
gcc (GCC) 15.0.0 20240509 (experimental)
screen: 5.0
from man calloc:
void *calloc(size_t nmemb, size_t size);
The calloc() function allocates memory for an array of *nmemb*
elements of *size* bytes each and returns a pointer to the allocated memory.
The memory is set to zero. ...
ie what we're doing is multiplyinig size*nmemb instead of size*nmemb which
*should* be equal but it is still backwards.
this is now a warning
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112364
# diff -Naur screen-5.0.0/list_license.c screen-compiles/list_license.c
--- screen-5.0.0/list_license.c 2024-08-28 13:55:03.000000000 -0600
+++ screen-compiles/list_license.c 2024-11-06 13:04:11.149682631 -0600
@@ -96,7 +96,7 @@
{
(void)ldata; /* unused */
- char *line = calloc(sizeof(char), flayer->l_width + 1);
+ char *line = calloc(flayer->l_width + 1,sizeof(char));
char *start = (char *)lrow->data;
char *lastspace = start;
size_t linelen = 0;
merely changing the order of arguments to put the size at the end (ie
sizeof(char)) is what gcc seems to be looking for. it *shouldn't* affect
anything other than this gcc warning, but it's good practice to use the API
properly rather than backwards as well.
_______________________________________________________
Reply to this item at:
<https://savannah.gnu.org/bugs/?66417>
_______________________________________________
Message sent via Savannah
https://savannah.gnu.org/
signature.asc
Description: PGP signature
