]> git.ipfire.org Git - pakfire.git/commitdiff
arch: Refactor pakfire_arch_machine and allocate string on heap
authorMichael Tremer <michael.tremer@ipfire.org>
Tue, 6 Apr 2021 16:19:04 +0000 (16:19 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Tue, 6 Apr 2021 16:20:57 +0000 (16:20 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/libpakfire/arch.c

index 03bf28dd57a6593a3fc9d7fd34021abb360831df..6b971f4a8978020635e329d8064d7f7498b6f53f 100644 (file)
@@ -138,15 +138,18 @@ PAKFIRE_EXPORT char* pakfire_arch_machine(const char* arch, const char* vendor)
        if (!vendor)
                vendor = "unknown";
 
+       char* buffer = NULL;
+
        // Format string
-       char buffer[STRING_SIZE];
-       snprintf(buffer, STRING_SIZE - 1, "%s-%s-linux-gnu", arch, vendor);
+       int r = asprintf(&buffer, "%s-%s-linux-gnu", arch, vendor);
+       if (r < 0)
+               return NULL;
 
        // Make everything lowercase
-       for (unsigned int i = 0; i < strlen(buffer); i++)
+       for (unsigned int i = 0; i <= (unsigned int)r; i++)
                buffer[i] = tolower(buffer[i]);
 
-       return strdup(buffer);
+       return buffer;
 }
 
 static const char* __pakfire_arch_native = NULL;