X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=ncurses%2Ftinfo%2Fwrite_entry.c;h=b76a109d67a664472dad6845fd5d8084741c5e7c;hp=a5f8604ec88a7fac47c49e5fdfe714e65948954a;hb=e2e9c09c48b19b24979cafb2d4864f538b5ddd1c;hpb=a3725e39272393790e32a083fd7391aad607828d diff --git a/ncurses/tinfo/write_entry.c b/ncurses/tinfo/write_entry.c index a5f8604e..b76a109d 100644 --- a/ncurses/tinfo/write_entry.c +++ b/ncurses/tinfo/write_entry.c @@ -47,7 +47,7 @@ #define TRACE_OUT(p) /*nothing */ #endif -MODULE_ID("$Id: write_entry.c,v 1.93 2015/09/05 21:24:29 tom Exp $") +MODULE_ID("$Id: write_entry.c,v 1.95 2016/09/10 20:22:42 tom Exp $") static int total_written; @@ -438,13 +438,14 @@ _nc_write_entry(TERMTYPE *const tp) { int code; #if USE_SYMLINKS - if (first_name[0] == linkname[0]) - strncpy(symlinkname, first_name, sizeof(symlinkname) - 1); - else { - _nc_STRCPY(symlinkname, "../", sizeof(suymlinkname)); - strncat(symlinkname, filename, sizeof(symlinkname) - 4); +#define MY_SIZE sizeof(symlinkname) - 1 + if (first_name[0] == linkname[0]) { + _nc_STRNCPY(symlinkname, first_name, MY_SIZE); + } else { + _nc_STRCPY(symlinkname, "../", sizeof(symlinkname)); + _nc_STRNCPY(symlinkname + 3, first_name, MY_SIZE - 3); } - symlinkname[sizeof(symlinkname) - 1] = '\0'; + symlinkname[MY_SIZE] = '\0'; #endif /* USE_SYMLINKS */ #if HAVE_REMOVE code = remove(linkname);