diff options
| -rw-r--r-- | sys/dev/syscons/syscons.c | 11 | ||||
| -rw-r--r-- | sys/i386/isa/syscons.c | 11 | ||||
| -rw-r--r-- | sys/isa/syscons.c | 11 |
3 files changed, 21 insertions, 12 deletions
diff --git a/sys/dev/syscons/syscons.c b/sys/dev/syscons/syscons.c index eb2b0addb48f8..0f263d46fe542 100644 --- a/sys/dev/syscons/syscons.c +++ b/sys/dev/syscons/syscons.c @@ -25,7 +25,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $Id: syscons.c,v 1.219 1997/06/29 22:23:32 ache Exp $ + * $Id: syscons.c,v 1.220 1997/06/30 13:31:49 yokota Exp $ */ #include "sc.h" @@ -775,7 +775,8 @@ scclose(dev_t dev, int flag, int mode, struct proc *p) } else { free(scp->scr_buf, M_DEVBUF); - free(scp->history, M_DEVBUF); + if (scp->history != NULL) + free(scp->history, M_DEVBUF); free(scp, M_DEVBUF); console[minor(dev)] = NULL; } @@ -957,7 +958,8 @@ scioctl(dev_t dev, int cmd, caddr_t data, int flag, struct proc *p) case CONS_HISTORY: /* set history size */ if (*data) { - free(scp->history, M_DEVBUF); + if (scp->history != NULL) + free(scp->history, M_DEVBUF); scp->history_size = *(int*)data; if (scp->history_size < scp->ysize) scp->history = NULL; @@ -3127,7 +3129,8 @@ next_code: (cur_console->xsize*i), cur_console->xsize * sizeof(u_short)); ptr += cur_console->xsize; - if (ptr + cur_console->xsize > + if (cur_console->history && + ptr + cur_console->xsize > cur_console->history + cur_console->history_size) ptr = cur_console->history; diff --git a/sys/i386/isa/syscons.c b/sys/i386/isa/syscons.c index eb2b0addb48f8..0f263d46fe542 100644 --- a/sys/i386/isa/syscons.c +++ b/sys/i386/isa/syscons.c @@ -25,7 +25,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $Id: syscons.c,v 1.219 1997/06/29 22:23:32 ache Exp $ + * $Id: syscons.c,v 1.220 1997/06/30 13:31:49 yokota Exp $ */ #include "sc.h" @@ -775,7 +775,8 @@ scclose(dev_t dev, int flag, int mode, struct proc *p) } else { free(scp->scr_buf, M_DEVBUF); - free(scp->history, M_DEVBUF); + if (scp->history != NULL) + free(scp->history, M_DEVBUF); free(scp, M_DEVBUF); console[minor(dev)] = NULL; } @@ -957,7 +958,8 @@ scioctl(dev_t dev, int cmd, caddr_t data, int flag, struct proc *p) case CONS_HISTORY: /* set history size */ if (*data) { - free(scp->history, M_DEVBUF); + if (scp->history != NULL) + free(scp->history, M_DEVBUF); scp->history_size = *(int*)data; if (scp->history_size < scp->ysize) scp->history = NULL; @@ -3127,7 +3129,8 @@ next_code: (cur_console->xsize*i), cur_console->xsize * sizeof(u_short)); ptr += cur_console->xsize; - if (ptr + cur_console->xsize > + if (cur_console->history && + ptr + cur_console->xsize > cur_console->history + cur_console->history_size) ptr = cur_console->history; diff --git a/sys/isa/syscons.c b/sys/isa/syscons.c index eb2b0addb48f8..0f263d46fe542 100644 --- a/sys/isa/syscons.c +++ b/sys/isa/syscons.c @@ -25,7 +25,7 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * $Id: syscons.c,v 1.219 1997/06/29 22:23:32 ache Exp $ + * $Id: syscons.c,v 1.220 1997/06/30 13:31:49 yokota Exp $ */ #include "sc.h" @@ -775,7 +775,8 @@ scclose(dev_t dev, int flag, int mode, struct proc *p) } else { free(scp->scr_buf, M_DEVBUF); - free(scp->history, M_DEVBUF); + if (scp->history != NULL) + free(scp->history, M_DEVBUF); free(scp, M_DEVBUF); console[minor(dev)] = NULL; } @@ -957,7 +958,8 @@ scioctl(dev_t dev, int cmd, caddr_t data, int flag, struct proc *p) case CONS_HISTORY: /* set history size */ if (*data) { - free(scp->history, M_DEVBUF); + if (scp->history != NULL) + free(scp->history, M_DEVBUF); scp->history_size = *(int*)data; if (scp->history_size < scp->ysize) scp->history = NULL; @@ -3127,7 +3129,8 @@ next_code: (cur_console->xsize*i), cur_console->xsize * sizeof(u_short)); ptr += cur_console->xsize; - if (ptr + cur_console->xsize > + if (cur_console->history && + ptr + cur_console->xsize > cur_console->history + cur_console->history_size) ptr = cur_console->history; |
