X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=tfcrypt.c;h=c8664cca99aad14cbc4cb9e84c4bb964483f5b4a;hb=26668913a55e867900ae7f80615640d814494e29;hp=2390516a2ae9b35d7b3715f82e8deb596d7d1c8b;hpb=8b7f1839b1981554979af1aa2e5e8b58ad63fe77;p=tfcrypt.git diff --git a/tfcrypt.c b/tfcrypt.c index 2390516..c8664cc 100644 --- a/tfcrypt.c +++ b/tfcrypt.c @@ -65,10 +65,12 @@ int main(int argc, char **argv) s = (char *)srcblk; d = getenv("HOME"); if (!d) d = ""; - xstrlcat(s, d, PATH_MAX > sizeof(srcblk) ? sizeof(srcblk) : PATH_MAX); - xstrlcat(s, "/.tfcrypt.defs", PATH_MAX > sizeof(srcblk) ? sizeof(srcblk) : PATH_MAX); + n = PATH_MAX > sizeof(srcblk) ? sizeof(srcblk) : PATH_MAX; + if (xstrlcpy(s, d, n) >= n) goto _baddfname; + if (xstrlcat(s, "/.tfcrypt.defs", n) >= n) goto _baddfname; read_defaults(s, YES); - memset(s, 0, PATH_MAX > sizeof(srcblk) ? sizeof(srcblk) : PATH_MAX); +_baddfname: + memset(s, 0, n); opterr = 0; while ((c = getopt(argc, argv, "L:s:aU:C:r:K:t:TPkzxc:l:qedn:vV:pwE:O:S:AmM:R:Z:WHD:")) != -1) {