upstream: Move up null check and simplify process_escapes.
Based on Coverity CID 291863 which points out we check the channel pointer for NULLness after dereferencing it. Move this to the start of the function, and while there simplify initialization of efc a bit. ok djm@ OpenBSD-Commit-ID: de36e5ad6fde0fe263ca134e986b9095dc59380a
This commit is contained in:
parent
b36b162be5
commit
09d8da0849
12
clientloop.c
12
clientloop.c
|
@ -1,4 +1,4 @@
|
||||||
/* $OpenBSD: clientloop.c,v 1.391 2023/03/31 04:04:15 djm Exp $ */
|
/* $OpenBSD: clientloop.c,v 1.392 2023/04/03 08:10:54 dtucker Exp $ */
|
||||||
/*
|
/*
|
||||||
* Author: Tatu Ylonen <ylo@cs.hut.fi>
|
* Author: Tatu Ylonen <ylo@cs.hut.fi>
|
||||||
* Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
|
* Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
|
||||||
|
@ -1005,14 +1005,12 @@ process_escapes(struct ssh *ssh, Channel *c,
|
||||||
u_int i;
|
u_int i;
|
||||||
u_char ch;
|
u_char ch;
|
||||||
char *s;
|
char *s;
|
||||||
struct escape_filter_ctx *efc = c->filter_ctx == NULL ?
|
struct escape_filter_ctx *efc;
|
||||||
NULL : (struct escape_filter_ctx *)c->filter_ctx;
|
|
||||||
|
|
||||||
if (c->filter_ctx == NULL)
|
if (c == NULL || c->filter_ctx == NULL || len <= 0)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if (len <= 0)
|
efc = (struct escape_filter_ctx *)c->filter_ctx;
|
||||||
return (0);
|
|
||||||
|
|
||||||
for (i = 0; i < (u_int)len; i++) {
|
for (i = 0; i < (u_int)len; i++) {
|
||||||
/* Get one character at a time. */
|
/* Get one character at a time. */
|
||||||
|
@ -1109,7 +1107,7 @@ process_escapes(struct ssh *ssh, Channel *c,
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
case '&':
|
case '&':
|
||||||
if (c && c->ctl_chan != -1)
|
if (c->ctl_chan != -1)
|
||||||
goto noescape;
|
goto noescape;
|
||||||
/*
|
/*
|
||||||
* Detach the program (continue to serve
|
* Detach the program (continue to serve
|
||||||
|
|
Loading…
Reference in New Issue