=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/doas/doas.c,v retrieving revision 1.22 retrieving revision 1.23 diff -c -r1.22 -r1.23 *** src/usr.bin/doas/doas.c 2015/07/26 17:24:02 1.22 --- src/usr.bin/doas/doas.c 2015/07/26 19:08:17 1.23 *************** *** 1,4 **** ! /* $OpenBSD: doas.c,v 1.22 2015/07/26 17:24:02 zhuk Exp $ */ /* * Copyright (c) 2015 Ted Unangst * --- 1,4 ---- ! /* $OpenBSD: doas.c,v 1.23 2015/07/26 19:08:17 zhuk Exp $ */ /* * Copyright (c) 2015 Ted Unangst * *************** *** 374,389 **** target)); parseconfig("/etc/doas.conf", 1); ! cmd = argv[0]; if (strlcpy(cmdline, argv[0], sizeof(cmdline)) >= sizeof(cmdline)) errx(1, "command line too long"); for (i = 1; i < argc; i++) { if (strlcat(cmdline, " ", sizeof(cmdline)) >= sizeof(cmdline)) ! errx(1, "command line too long"); if (strlcat(cmdline, argv[i], sizeof(cmdline)) >= sizeof(cmdline)) ! errx(1, "command line too long"); } if (!permit(uid, groups, ngroups, &rule, target, cmd, (const char**)argv + 1)) { syslog(LOG_AUTHPRIV | LOG_NOTICE, --- 374,391 ---- target)); parseconfig("/etc/doas.conf", 1); ! /* cmdline is used only for logging, no need to abort on truncate */ ! (void) strlcpy(cmdline, argv[0], sizeof(cmdline)) < sizeof(cmdline); if (strlcpy(cmdline, argv[0], sizeof(cmdline)) >= sizeof(cmdline)) errx(1, "command line too long"); for (i = 1; i < argc; i++) { if (strlcat(cmdline, " ", sizeof(cmdline)) >= sizeof(cmdline)) ! break; if (strlcat(cmdline, argv[i], sizeof(cmdline)) >= sizeof(cmdline)) ! break; } + cmd = argv[0]; if (!permit(uid, groups, ngroups, &rule, target, cmd, (const char**)argv + 1)) { syslog(LOG_AUTHPRIV | LOG_NOTICE,