diff -ru hurd.orig/daemons/ChangeLog hurd/daemons/ChangeLog --- hurd.orig/daemons/ChangeLog Wed Jul 25 01:49:59 2001 +++ hurd/daemons/ChangeLog Mon Jul 30 20:16:45 2001 @@ -1,3 +1,8 @@ +2001-07-30 Igor Khavkine + + * getty.c: Added checks for validity of malloc'ed memory. + * runttys.c: Same as above. + 2001-06-08 Roland McGrath * rc.sh: Start /hurd/mach-defpager before swapon. diff -ru hurd.orig/defpager/ChangeLog hurd/defpager/ChangeLog --- hurd.orig/defpager/ChangeLog Sat Jul 3 19:48:14 1999 +++ hurd/defpager/ChangeLog Mon Jul 30 20:19:04 2001 @@ -1,3 +1,10 @@ +2001-07-30 Igor Khavkine + + * backing.c: Added check for validity of malloc'ed memory. + + * defpager.c (expand_map): Fix variable name so this code + would compile (if ever needed to). + 1999-07-03 Thomas Bushnell, BSG * defpager.c (pager_read_page): Use munmap instead of diff -ru hurd.orig/exec/ChangeLog hurd/exec/ChangeLog --- hurd.orig/exec/ChangeLog Wed Jul 25 01:49:59 2001 +++ hurd/exec/ChangeLog Mon Jul 30 20:19:55 2001 @@ -1,3 +1,7 @@ +2001-07-30 Igor Khavkine + + * exec.c: Added check for validity of malloc'ed memory. + 2001-04-01 Neal H Walfield * main.c (S_exec_init): Use iohelp_create_empty_iouser. diff -ru hurd.orig/daemons/getty.c hurd/daemons/getty.c --- hurd.orig/daemons/getty.c Tue Sep 28 10:17:25 1999 +++ hurd/daemons/getty.c Mon Jul 30 02:33:46 2001 @@ -51,6 +51,11 @@ cc = asprintf (&s, "\r\n\n%s %s (%s) (%s)\r\n\n", u.sysname, u.release, hostname ?: "?", basename (ttyname)); + if (! s) { + syslog (LOG_ERR, "Insufficient memory"); + closelog (); + exit (1); + } write (fd, s, cc); } @@ -77,6 +82,11 @@ tt = getttynam (argv[2]); asprintf (&ttyname, "%s/%s", _PATH_DEV, argv[2]); + if (! ttyname) { + syslog (LOG_ERR, "Insufficient memory"); + closelog (); + exit (1); + } chown (ttyname, 0, 0); chmod (ttyname, 0600); diff -ru hurd.orig/daemons/runttys.c hurd/daemons/runttys.c --- hurd.orig/daemons/runttys.c Sun Sep 19 15:43:31 1999 +++ hurd/daemons/runttys.c Mon Jul 30 10:29:46 2001 @@ -93,6 +93,8 @@ argz_create_sep (line, ' ', &argz, &len); argc = argz_count (argz, len); argv = malloc (argc * sizeof (char *)); + if (! argv) + error (1, errno, "malloc"); argz_extract (argz, len, argv); return argv; } @@ -117,6 +119,8 @@ if (nttys >= ttyslen) { ttys = realloc (ttys, (ttyslen * 2) * sizeof (struct ttyent)); + if (! ttys) + error (1, errno, "malloc"); memset (&ttys[nttys], 0, ttyslen); ttyslen *= 2; } @@ -125,6 +129,8 @@ nttys++; t->name = strdup (tt->ty_name); + if (! t->name) + error (1, errno, "malloc"); setup_terminal (t, tt); if (t->getty_argv) @@ -143,6 +149,8 @@ nttys = 0; ttys = calloc (ttyslen, sizeof (struct ttyent)); + if (! ttys) + error (1, errno, "calloc"); if (!setttyent ()) { diff -ru hurd.orig/defpager/backing.c hurd/defpager/backing.c --- hurd.orig/defpager/backing.c Fri Oct 25 21:07:58 1996 +++ hurd/defpager/backing.c Mon Jul 30 10:32:19 2001 @@ -50,6 +50,8 @@ bmap_len = backing_store->size / vm_page_size / NBBY; bmap = malloc (bmap_len); + if (! bmap) + return ENOMEM; for (i = 0; i < bmap_len; i++) bmap[i] = 0xff; bmap_rotor = bmap; diff -ru hurd.orig/defpager/defpager.c hurd/defpager/defpager.c --- hurd.orig/defpager/defpager.c Sat Jul 3 19:48:14 1999 +++ hurd/defpager/defpager.c Mon Jul 30 10:33:33 2001 @@ -31,10 +31,10 @@ off_t *map; }; -/* Expand the P->map as necessary to handle an incoming request of the - page at ADDR. */ +/* Expand the PAGER->map as necessary to handle an incoming request of the + page at PAGE. */ static inline void -expand_map (struct user_pager_info *p, vm_offset_t addr) +expand_map (struct user_pager_info *pager, vm_offset_t page) { /* See if this is beyond the current extent */ if (page >= pager->size) diff -ru hurd.orig/exec/exec.c hurd/exec/exec.c --- hurd.orig/exec/exec.c Wed Jul 25 01:49:59 2001 +++ hurd/exec/exec.c Mon Jul 30 10:36:21 2001 @@ -2027,6 +2027,8 @@ { int tried = 0; list = strdupa (list); + if (! list) + return ENOMEM; while ((p = strsep (&list, ":"))) { /* Open the named file using the appropriate directory ports for