Make sure we use the POSIX basename rather than GNU's

When we include libgen.h, POSIX's basename will be used rather than
GNU's. Since we don't use the special functionalities of GNU's variant
anyway, this helps to compile it on POSIX-compliant libc's like Musl.

https://www.man7.org/linux/man-pages/man3/basename.3.html
pull/1/head
Bart Ribbers 4 years ago
parent 3f37dedbbc
commit ce1637e317
No known key found for this signature in database
GPG Key ID: 699D16185DAFAE61

@ -43,6 +43,7 @@
#include <stdexcept> #include <stdexcept>
#include <fstream> #include <fstream>
#include <sstream> #include <sstream>
#include <libgen.h>
#include <stdlib.h> #include <stdlib.h>
#include <systemd/sd-daemon.h> #include <systemd/sd-daemon.h>
#include <unistd.h> #include <unistd.h>
@ -979,7 +980,8 @@ void Daemon::parseArgs(int argc, char **argv)
// Prints the usage and exits with given status // Prints the usage and exits with given status
void Daemon::usage(const char *name, int status) void Daemon::usage(const char *name, int status)
{ {
name = basename(name); char *nameCopy = strdup(name);
name = basename(nameCopy);
printf("\n" printf("\n"
"Start the application launcher daemon.\n" "Start the application launcher daemon.\n"
"\n" "\n"
@ -1008,6 +1010,8 @@ void Daemon::usage(const char *name, int status)
"\n", "\n",
name, name, name); name, name, name);
free(nameCopy);
exit(status); exit(status);
} }

Loading…
Cancel
Save