summaryrefslogtreecommitdiffstats
path: root/tdm/kfrontend/kgreeter.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tdm/kfrontend/kgreeter.cpp')
-rw-r--r--tdm/kfrontend/kgreeter.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/tdm/kfrontend/kgreeter.cpp b/tdm/kfrontend/kgreeter.cpp
index 717d2549f..97c6f2588 100644
--- a/tdm/kfrontend/kgreeter.cpp
+++ b/tdm/kfrontend/kgreeter.cpp
@@ -83,6 +83,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#include <sys/time.h>
#include <termios.h>
#include <signal.h>
+#include <libgen.h>
#include <X11/Xlib.h>
@@ -250,6 +251,13 @@ void KGreeter::handleInputPipe(void) {
umask(0);
struct stat buffer;
int status;
+ char *fifo_parent_dir = strdup(FIFO_DIR);
+ dirname(fifo_parent_dir);
+ status = stat(fifo_parent_dir, &buffer);
+ if (status != 0) {
+ mkdir(fifo_parent_dir, 0644);
+ }
+ free(fifo_parent_dir);
status = stat(FIFO_DIR, &buffer);
if (status == 0) {
int file_mode = ((buffer.st_mode & S_IRWXU) >> 6) * 100;