From 14e8bfdc0a83a1256f2efc92868ead7dbd26bc51 Mon Sep 17 00:00:00 2001 From: Jan200101 Date: Mon, 26 Apr 2021 09:42:38 +0200 Subject: rid some warnings put brackets around flag logic ignore chdir return use memmove for putting quotes around the dxvk path --- src/command.h | 6 +++--- src/dxvk.c | 13 ++++++++----- src/tar.c | 2 +- 3 files changed, 12 insertions(+), 9 deletions(-) (limited to 'src') diff --git a/src/command.h b/src/command.h index 54ce16f..7460d59 100644 --- a/src/command.h +++ b/src/command.h @@ -65,9 +65,9 @@ \ for (unsigned long i = 0; i < ARRAY_LEN(GROUP##_flags); ++i) \ { \ - if (GROUP##_flags[i].variant & SINGLE && argv[j][1] == GROUP##_flags[i].name[0] || \ - GROUP##_flags[i].variant & DOUBLE && argv[j][1] == '-' \ - && !strcmp(GROUP##_flags[i].name, argv[j]+2)) \ + if ((GROUP##_flags[i].variant & SINGLE && argv[j][1] == GROUP##_flags[i].name[0]) || \ + (GROUP##_flags[i].variant & DOUBLE && argv[j][1] == '-' \ + && !strcmp(GROUP##_flags[i].name, argv[j]+2))) \ { \ return GROUP##_flags[i].func(0, NULL); \ } \ diff --git a/src/dxvk.c b/src/dxvk.c index 9b4a5f6..34790cd 100644 --- a/src/dxvk.c +++ b/src/dxvk.c @@ -182,11 +182,14 @@ COMMAND(dxvk, install) { // quote the dxvkpath so whitespace won't cause trouble { - char dxvkpathcpy[PATH_MAX] = {0}; - strncat(dxvkpathcpy, "\"", sizeof(dxvkpathcpy) - strlen(dxvkpathcpy) - 1); - strncat(dxvkpathcpy, dxvkpath, sizeof(dxvkpathcpy) - strlen(dxvkpathcpy) - 1); - strncat(dxvkpathcpy, "\"", sizeof(dxvkpathcpy) - strlen(dxvkpathcpy) - 1); - strncpy(dxvkpath, dxvkpathcpy, sizeof(dxvkpathcpy)); + size_t size = strlen(dxvkpath) + 1; + if (size > sizeof(dxvkpath)) size = sizeof(dxvkpath); + + memmove(dxvkpath+1, dxvkpath, size - 1); + dxvkpath[0] = '"'; + + strncat(dxvkpath, "\"", sizeof(dxvkpath) - size); + } strncat(dxvkpath, " install", sizeof(dxvkpath) - strlen(dxvkpath) - 1); diff --git a/src/tar.c b/src/tar.c index 0daf657..d11728b 100644 --- a/src/tar.c +++ b/src/tar.c @@ -108,5 +108,5 @@ void extract(const struct MemoryStruct* tar, const char* outputdir) archive_write_close(ext); archive_write_free(ext); - if (err) chdir(cwd); + if (err) (void)chdir(cwd); } -- cgit v1.2.3