From 5737d684c8e0dee23bd8e7e6412e85161f6eb634 Mon Sep 17 00:00:00 2001 From: Federico klez Culloca Date: Sat, 6 Jun 2026 23:40:25 +0200 Subject: [PATCH] fixed clang warnings --- parrotsay.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/parrotsay.c b/parrotsay.c index 2b8b040..00bb541 100644 --- a/parrotsay.c +++ b/parrotsay.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2018 Federico klez Culloca +/* Copyright (C) 2018-2026 Federico klez Culloca This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or @@ -79,29 +79,29 @@ int main(int argc, char** argv) { if(argc > 1) { *message_rows = calloc(1, sizeof(char)); for(int i = 1; i < argc; i++) { - *message_rows = realloc(*message_rows, sizeof(char) * ( strlen(*message_rows) - + strlen(*(argv + i)) - + (i == 1 ? 0 : 1))); + size_t message_rows_length = strlen(*message_rows) + + strlen(*(argv+i)) + + (i == 1 ? 0 : 1); + *message_rows = realloc(*message_rows, message_rows_length); if(i != 1) { - *message_rows = strcat(*message_rows, " "); + strlcat(*message_rows, " ", message_rows_length); } - *message_rows = strcat(*message_rows, *(argv + i)); + strlcat(*message_rows, *(argv + i), message_rows_length); } rows = 1; longest_line_size = strlen(*message_rows); } else { size_t line_length = 0; - ssize_t nread; char* line = NULL; - while((nread = getline(&line, &line_length, stdin)) != -1) { + while(getline(&line, &line_length, stdin) != -1) { if(rows + 1 >= buffer_size) { buffer_size *= 2; message_rows = realloc(message_rows, sizeof(char*) * buffer_size); } char *untabbed_line = tabstospaces(line, 4); size_t untabbed_line_length = strlen(untabbed_line); - message_rows[rows] = calloc(1 + untabbed_line_length, sizeof(char)); - strcpy(message_rows[rows], untabbed_line); + message_rows[rows] = calloc(untabbed_line_length + 1, sizeof(char)); + strlcpy(message_rows[rows], untabbed_line, untabbed_line_length + 1); message_rows[rows][strcspn(untabbed_line, "\n")] = 0; rows++; if(untabbed_line_length > longest_line_size) { @@ -114,7 +114,7 @@ int main(int argc, char** argv) { printline(longest_line_size + 2); for (size_t i = 0; i < rows; i++) { - printf("| %s%*s |\n", message_rows[i], longest_line_size - strlen(message_rows[i]), ""); + printf("| %s%*s |\n", message_rows[i], longest_line_size - (u_int)strlen(message_rows[i]), ""); free(message_rows[i]); } -- 2.47.3