From 16d61d3c974b1d287db8d548cc13078341019730 Mon Sep 17 00:00:00 2001 From: cinap_lenrek Date: Thu, 11 Oct 2012 17:29:16 +0200 Subject: kernel: try to catch some (rare) mistakes kstrcpy() did not null terminate for < 4 byte buffers. fixed, but i dont think there is any case where this can happen in practice. always set malloctag in kstrdup(), cleanup. always use ERRMAX bounded kstrcpy() to set up->errstr, q->err and note[]->msg. paranoia. instead of silently truncating interface name in netifinit(), panic the kernel if interface name is too long as this case is clearly a mistake. panic kernel when filename is too long for addbootfile() in devroot. this might happen if your kernel configuration is messed up. --- sys/src/9/port/devroot.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'sys/src/9/port/devroot.c') diff --git a/sys/src/9/port/devroot.c b/sys/src/9/port/devroot.c index e2d3cddcd..338432505 100644 --- a/sys/src/9/port/devroot.c +++ b/sys/src/9/port/devroot.c @@ -63,6 +63,8 @@ addlist(Dirlist *l, char *name, uchar *contents, ulong len, int perm) panic("too many root files"); l->data[l->ndir] = contents; d = &l->dir[l->ndir]; + if(strlen(name) >= sizeof d->name) + panic("root file name too long: %s", name); strcpy(d->name, name); d->length = len; d->perm = perm; -- cgit v1.2.3