do not use %n in snprintf()
This commit is contained in:
parent
784f32dcb1
commit
288d3e7120
@ -1,4 +1,4 @@
|
||||
# $OpenBSD: Makefile,v 1.10 2020/07/25 09:47:59 robert Exp $
|
||||
# $OpenBSD: Makefile,v 1.11 2021/09/06 10:59:24 robert Exp $
|
||||
|
||||
COMMENT= Pluggable Authentication Module
|
||||
|
||||
@ -6,6 +6,8 @@ V= 20200510
|
||||
DISTNAME= freebsd_pam-${V}
|
||||
PKGNAME= openpam-${V}
|
||||
|
||||
REVISION= 0
|
||||
|
||||
CATEGORIES= security
|
||||
|
||||
SHARED_LIBS+= pam 6.0
|
||||
|
@ -0,0 +1,31 @@
|
||||
$OpenBSD: patch-openpam_lib_libpam_openpam_dynamic_c,v 1.1 2021/09/06 10:59:24 robert Exp $
|
||||
|
||||
Don't use printf %n.
|
||||
|
||||
Index: openpam/lib/libpam/openpam_dynamic.c
|
||||
--- openpam/lib/libpam/openpam_dynamic.c.orig
|
||||
+++ openpam/lib/libpam/openpam_dynamic.c
|
||||
@@ -229,14 +229,17 @@ openpam_dynamic(const char *modname)
|
||||
* note of where the suffix begins so we can cut it off later.
|
||||
*/
|
||||
if (has_ver)
|
||||
- len = snprintf(modpath, sizeof modpath, "%s/%s%n",
|
||||
- *path, modname, &dot);
|
||||
+ len = snprintf(modpath, sizeof modpath, "%s/%s",
|
||||
+ *path, modname);
|
||||
+ }
|
||||
else if (has_so)
|
||||
- len = snprintf(modpath, sizeof modpath, "%s/%s%n.%d",
|
||||
- *path, modname, &dot, LIB_MAJ);
|
||||
+ len = snprintf(modpath, sizeof modpath, "%s/%s.%d",
|
||||
+ *path, modname, LIB_MAJ);
|
||||
else
|
||||
- len = snprintf(modpath, sizeof modpath, "%s/%s%s%n.%d",
|
||||
- *path, modname, PAM_SOEXT, &dot, LIB_MAJ);
|
||||
+ len = snprintf(modpath, sizeof modpath, "%s/%s%s.%d",
|
||||
+ *path, modname, PAM_SOEXT, LIB_MAJ);
|
||||
+ if (!has_ver)
|
||||
+ dot = strrchr(modpath, '.') - modpath;
|
||||
/* check for overflow */
|
||||
if (len < 0 || (unsigned int)len >= sizeof modpath) {
|
||||
errno = ENOENT;
|
Loading…
x
Reference in New Issue
Block a user