Kernel oops in read()

From: John Goerzen (jgoerzen@complete.org)
Date: Thu Jun 01 2000 - 13:34:05 EST


This is kernel 2.2.15 or 2.2.16pre7 (same on both). The following
test program, run as *ANY* user on the system (not just root), causes
a segfault (expected) and a kernel oops every time it is run. (Note:
this malloc is supposed to fail. If it gets that much RAM on your
system, buy a slower box <g>)

#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <fcntl.h>

void main(void) {
  int fd;
  char *buf;
  
  fd = open("/bin/bash", O_RDONLY);
  lseek(fd, 98, SEEK_SET);
  buf = malloc(1768849408);
  printf("fd = %d\n", fd);
  while (1) {
    read(fd, buf, 1768849408);
  }
}

Strace gives:

write(1, "fd = 3\n", 7fd = 3
) = 7
read(3, <unfinished ...>
+++ killed by SIGSEGV +++

The platform is DEC Alpha, 21164a CPU, 256M RAM, Debian.

The oops is:

Unable to handle kernel paging request at virtual address 0000000000000000
test(3515): Oops 1
pc = [<fffffc0000468a74>] ra = [<fffffc0000335140>] ps = 0000
v0 = 0000000000001f9e t0 = 0150000000000000 t1 = 0000000000000150
t2 = 0000000000000000 t3 = 0000000000001f90 t4 = 0000000000000114
t5 = 0000000000000000 t6 = fffffc000fb3c062 t7 = fffffc0008710000
s0 = 0000000000001f9e s1 = fffffc0000793b28 s2 = fffffc00000309e0
s3 = 0000000000000000 s4 = 0000000000000000 s5 = fffffc000029dd40
s6 = 0000000000000000 a0 = fffffc0008713ec8 a1 = fffffc000fb3c062
a2 = 0000000000001f9e a3 = fffffc0000335400 a4 = ffffffffffffffff
a5 = 0000000000000007 t8 = 0000000000001f9e t9 = 00000000696e8000
t10= 3000000000000000 t11= 000000000000000a pv = fffffc00004689e0
at = fffffc000033542c gp = fffffc00004e3c78 sp = fffffc0008713e38
Code:
 2fe00000 ldq_u zero,0(v0)
 2c470008 ldq_u t1,8(t6)
 40811524 subq t3,8,t3
 486706c3 extql t2,t6,t2
 48470f41 ALU t1,t6,t0
 44610401 or t2,t0,t0
*b4260000 stq t0,0(t5)
 40e11407 addq t6,8,t6
Trace: 3354d8 335400 34238c 310e4c

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Wed Jun 07 2000 - 21:00:13 EST