OpenSSH: Suppress last warning in session.c
authorzrj <rimvydas.jasinskas@gmail.com>
Sun, 25 Sep 2016 15:10:27 +0000 (18:10 +0300)
committerzrj <zrj@dragonflybsd.org>
Mon, 26 Sep 2016 06:10:36 +0000 (09:10 +0300)
Use __DECONST() trick, that is safe here because login_getcapstr() either
returns copy on success or error string that in this case is passed as
def_nl and checked if return pointer is != def_nl.

crypto/openssh/session.c

index 2235f26..c140a73 100644 (file)
@@ -1432,7 +1432,8 @@ static void
 do_nologin(struct passwd *pw)
 {
        FILE *f = NULL;
-       char buf[1024], *nl, *def_nl = _PATH_NOLOGIN;
+       char buf[1024], *def_nl = _PATH_NOLOGIN;
+       const char *nl;
        struct stat sb;
 
 #ifdef HAVE_LOGIN_CAP
@@ -1446,7 +1447,7 @@ do_nologin(struct passwd *pw)
 #endif
        if (stat(nl, &sb) == -1) {
                if (nl != def_nl)
-                       free(nl);
+                       free(__DECONST(char *, nl)); /* __DECONST() safe */
                return;
        }