]> git.pond.sub.org Git - empserver/commitdiff
client: Use fnameat() to construct history file name
authorMarkus Armbruster <armbru@pond.sub.org>
Sun, 13 Dec 2015 07:34:26 +0000 (08:34 +0100)
committerMarkus Armbruster <armbru@pond.sub.org>
Sun, 6 Aug 2017 09:22:30 +0000 (11:22 +0200)
We truncate the user's home directory name to 1000 characters when
constructing the history file name.  Use fnameat() to fix that.

Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
Make.mk
src/client/Makefile.in
src/client/main.c

diff --git a/Make.mk b/Make.mk
index 05547d1ce03de2ec4d6b2f1268e04b6e7d273486..6ea44d09c4cd1504f016c5afd41586cc6d65c98f 100644 (file)
--- a/Make.mk
+++ b/Make.mk
@@ -314,7 +314,7 @@ info.html/%.html: info/%.t
 $(server): $(filter src/server/% src/lib/commands/% src/lib/player/% src/lib/subs/% src/lib/update/%, $(obj)) $(empth_obj) $(empth_lib) $(libs)
        $(call quiet-command,$(LINK.o) $^ $(LOADLIBES) $(LDLIBS) -o $@,LINK $@)
 
-$(client): $(filter src/client/%, $(obj)) src/lib/global/version.o
+$(client): $(filter src/client/%, $(obj)) src/lib/global/version.o src/lib/gen/fnameat.o
        $(call quiet-command,$(LINK.o) $^ $(LOADLIBES) $(LDLIBS) -o $@,LINK $@)
 
 $(util): $(libs)
@@ -373,8 +373,9 @@ dist-client: $(cli_distgen)
        $(tarball) $(TARNAME)-client-$(VERSION)                         \
        -C $(srcdir)/src/client                                         \
                $(notdir $(filter src/client/%, $(src)) $(cli_distgen)) \
-       -C $(srcdir)/include proto.h version.h                          \
+       -C $(srcdir)/include fnameat.h proto.h version.h                \
        -C $(srcdir)/src/lib/global version.c                           \
+       -C $(srcdir)/src/lib/gen fnameat.c                              \
        -C $(srcdir)/src/lib $(addprefix w32/, $(client/w32))           \
        -C $(srcdir)/man empire.6                                       \
        -C $(srcdir)/build-aux install-sh                               \
index c5a6c3e380967d0f57b791429626d5a899ddd194..f794c2fd72644f9ccf2e7bbb39e9d5326b8b7eea 100644 (file)
@@ -28,7 +28,7 @@
 #   Makefile.in: Makefile template for configure
 #
 #   Known contributors to this file:
-#      Markus Armbruster, 2005-2013
+#      Markus Armbruster, 2005-2015
 #
 
 CC = @CC@
@@ -53,8 +53,9 @@ srcdir = @srcdir@
 VPATH = @srcdir@
 
 prog = empire$E
-obj = expect.$O host.$O ipglob.$O linebuf.$O login.$O main.$O play.$O  \
-ringbuf.$O secure.$O servcmd.$O termlib.$O version.$O $(LIBOBJS)
+obj = expect.$O fnameat.$O host.$O ipglob.$O linebuf.$O login.$O       \
+main.$O play.$O ringbuf.$O secure.$O servcmd.$O termlib.$O version.$O  \
+$(LIBOBJS)
 
 all: $(prog)
 
@@ -83,7 +84,7 @@ expect.$O: misc.h proto.h
 host.$O: misc.h
 linebuf.$O: linebuf.h
 login.$O: misc.h proto.h
-main.$O: misc.h version.h
+main.$O: fnameat.h misc.h version.h
 play.$O: linebuf.h misc.h proto.h ringbuf.h secure.h
 ringbuf.$O: ringbuf.h
 secure.$O: ringbuf.h secure.h
index cdffc8ac42a8deddde85cb16aa93970e943c3b2f..aaa54e9df63e23c8aa9822665173466cd9be50af 100644 (file)
@@ -47,6 +47,7 @@
 #include <pwd.h>
 #endif
 #include <unistd.h>
+#include "fnameat.h"
 #include "misc.h"
 #include "version.h"
 
@@ -190,12 +191,8 @@ main(int argc, char **argv)
 
     sock = tcp_connect(host, port);
 
-    if (use_history_file) {
-       /* FIXME don't truncate udir */
-       history_file = malloc(1024);
-       strncpy(history_file, udir, 1000);
-       strcat(history_file, "/.empire.history");
-    }
+    if (use_history_file)
+       history_file = fnameat(".empire_history", udir);
 
     if (!login(sock, uname, country, passwd, send_kill, utf8))
        exit(1);