From d53109eaa890ab807b66961a89291cea3cd3c003 Mon Sep 17 00:00:00 2001 From: Jan200101 Date: Tue, 18 Aug 2020 23:58:16 +0200 Subject: first part of a proper lutris implementation and cleanup - remove all old build platform related variables - change behavior of clean - change tabs into spaces - make XDG fetching method static - replace strcpy and cat with strn alternative with proper bounds checking - add cache dir - reenable dxvk and download from ram - completely rework lutris fetching and convert it into an interal struct - only show http errors in debug - add sanity checks to methods with possible NULL return - change extracting methods to extract tar from ram --- src/config.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) (limited to 'src/config.c') diff --git a/src/config.c b/src/config.c index f691648..b728e10 100644 --- a/src/config.c +++ b/src/config.c @@ -7,7 +7,7 @@ #include "config.h" #include "common.h" -void getXDGDir(const char* envvar, const char* homeext, char* config) +static void getXDGDir(const char* envvar, const char* homeext, char* config, const size_t size) { char* xdg_var = getenv(envvar); @@ -18,19 +18,24 @@ void getXDGDir(const char* envvar, const char* homeext, char* config) else { char* home = getenv("HOME"); - strcpy(config, home); - strcat(config, homeext); + strncpy(config, home, size); + strncat(config, homeext, size - strlen(config)); } } -void getConfigDir(char* config) +void getConfigDir(char* config, const size_t size) { - getXDGDir("XDG_CONFIG_HOME", "/.config/" NAME, config); + getXDGDir("XDG_CONFIG_HOME", "/.config/" NAME, config, size); } -void getDataDir(char* config) +void getDataDir(char* config, const size_t size) { - getXDGDir("XDG_DATA_HOME", "/.local/share/" NAME, config); + getXDGDir("XDG_DATA_HOME", "/.local/share/" NAME, config, size); +} + +void getCacheDir(char* config, const size_t size) +{ + getXDGDir("XDG_CACHE_HOME", "/.cache/" NAME, config, size); } void makeDir(const char* path) -- cgit v1.2.3