|
ru.unix.bsd
- RU.UNIX.BSD ------------------------------------------------------------------
From : Valeriy E. Ushakov 2:5020/400 22 Apr 2002 01:30:27
To : Gleb Smirnoff
Subject : Re: limit
--------------------------------------------------------------------------------
Gleb Smirnoff <glebius@cell.sick.ru> wrote:
> Valeriy E. Ushakov <uwe@ptc.spbu.ru> wrote:
>>> То есть результат malloc() не проверяется?
>
> VEU> А как проверить, что ты в stack limit уперся? Программа честно
> VEU> двигает sp, и думает, что у нее есть N байт на фрейм, хотя их у нее
> VEU> всего лишь до конца последней страницы, а больше не дадут.
>
> RETURN VALUES
> The malloc() and calloc() functions return a pointer to the allocated
> space if successful; otherwise, a null pointer is returned and errno is
> set to ENOMEM.
Программа имеет, скажем, 512К лимит на размер стека. Программа
выжрала, ну скажем, 511K. Она вызывает функцию, которой под локальные
переменные надо, ну пусть, 2К. Пролог функции создает новый call
frame, передвинув %sp/%fp, код функции обращается к переменнным по
смещениям от регистра. Обращается к одной переменной, которая ниже
512К - все ок. Обращается к другой переменной, которая вылезает за эти
512К на следующую страницу... оппаньки, стек уперся в лимит, новой
страницы ядро под стек не дает. Программа умирает.
Реальный пример - сборка clisp на NetBSD/sparc дохнет в bootstrap'е
именно по этой причине.
Кстати, вот где был неправ - так в непоквоченной тобой гипотезе про
malloc - там sbrk(), упершись в лимит, обломится с ENOMEM. Hо malloc,
явно просит себе новый кусок арены и может проверить код возврата. А
вот стек функции дается программе ядром автомагически, явочным, так
сказать порядком.
SY, Uwe
--
uwe@ptc.spbu.ru | Zu Grunde kommen
http://www.ptc.spbu.ru/~uwe/ | Ist zu Grunde gehen
--- ifmail v.2.15dev5
* Origin: St.Petersburg University NOC (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Тема: |
Автор: |
Дата: |
limit |
Ruslan Sulemanov |
08 Apr 2002 00:12:16 |
Re: limit |
Eugene Grosbein |
08 Apr 2002 13:26:11 |
Re: limit |
Gleb Smirnoff |
08 Apr 2002 09:42:27 |
 limit |
Ruslan Sulemanov |
14 Apr 2002 01:59:59 |
  Re: limit |
Dmitriy Kyrhlarov |
15 Apr 2002 11:31:38 |
  Re: limit |
Gleb Smirnoff |
16 Apr 2002 01:01:17 |
  limit |
Ruslan Sulemanov |
17 Apr 2002 00:15:05 |
  Re: limit |
Andrew Kolchoogin |
20 Apr 2002 17:56:10 |
  Re: limit |
Eugene Grosbein |
21 Apr 2002 00:19:08 |
   Re^2: limit |
Andrew Kolchoogin |
20 Apr 2002 21:48:28 |
   Re: limit |
Eugene Grosbein |
21 Apr 2002 19:19:56 |
   Re^2: limit |
Andrew Kolchoogin |
20 Apr 2002 21:50:00 |
    Re^2: limit |
Kardanev Alexandre |
23 Apr 2002 10:22:24 |
  Re: limit |
Valentin Nechayev |
20 Apr 2002 22:30:44 |
   Re^2: limit |
Andrew Kolchoogin |
21 Apr 2002 02:52:36 |
   Re: limit |
Valeriy E. Ushakov |
21 Apr 2002 14:05:37 |
    Re: limit |
Gleb Smirnoff |
21 Apr 2002 23:35:51 |
    Re: limit |
Valeriy E. Ushakov |
22 Apr 2002 01:30:27 |
  Re: limit |
Gleb Smirnoff |
20 Apr 2002 22:46:36 |
   Re^2: limit |
Andrew Kolchoogin |
21 Apr 2002 02:55:14 |
    Re^2: limit |
Max Khon |
23 Apr 2002 21:56:36 |
  limit |
Alex Semenyaka |
23 Apr 2002 03:30:52 |
limit |
Alex Semenyaka |
08 Apr 2002 15:48:02 |
 limit |
Ruslan Sulemanov |
14 Apr 2002 02:21:19 |
limit |
Pavel Shishkin |
08 Apr 2002 20:34:20 |
 limit |
Alexander Anistratenko |
09 Apr 2002 01:24:49 |
  Re: limit |
Dmitry Mikhailov |
09 Apr 2002 11:59:37 |
   limit |
Alexander Anistratenko |
09 Apr 2002 17:47:13 |
   Re: limit |
Eugene Grosbein |
09 Apr 2002 20:15:18 |
   limit |
Alexander Anistratenko |
09 Apr 2002 21:13:20 |
   Re: limit |
Eugene Grosbein |
10 Apr 2002 10:46:38 |
    limit |
Alexander Anistratenko |
10 Apr 2002 13:32:29 |
     Re: limit |
Eugene Grosbein |
10 Apr 2002 15:07:04 |
     limit |
Alexander Anistratenko |
10 Apr 2002 15:33:17 |
     Re: limit |
Eugene Grosbein |
10 Apr 2002 17:17:10 |
      limit |
Alexander Anistratenko |
10 Apr 2002 17:53:44 |
       limit |
Kardanev Alexandre |
10 Apr 2002 15:52:47 |
       Re: limit |
Eugene Grosbein |
10 Apr 2002 20:05:32 |
        limit |
Alexander Anistratenko |
10 Apr 2002 21:21:12 |
         Re: limit |
Andrew Dolgov |
10 Apr 2002 21:25:06 |
         limit |
Serge V. Svetoff |
10 Apr 2002 22:27:08 |
          Re: limit |
Valentin Nechayev |
11 Apr 2002 09:32:01 |
           limit |
Alexander Anistratenko |
11 Apr 2002 14:58:23 |
            Re: limit |
Eugene Grosbein |
11 Apr 2002 16:34:33 |
             limit |
Alexander Anistratenko |
11 Apr 2002 16:02:22 |
              Re: limit |
Eugene Grosbein |
12 Apr 2002 10:19:28 |
               limit |
Alexander Anistratenko |
12 Apr 2002 13:12:16 |
               Re: limit |
Eugene Grosbein |
12 Apr 2002 15:19:03 |
             Re: limit |
Andrew Dolgov |
11 Apr 2002 20:20:10 |
           limit |
Serge V. Svetoff |
11 Apr 2002 22:08:34 |
         limit |
Max Khon |
11 Apr 2002 02:53:16 |
         Re: limit |
Eugene Grosbein |
11 Apr 2002 09:35:14 |
       limit |
Max Khon |
11 Apr 2002 02:47:04 |
       Re: limit |
Artem \'Zazoobr\' Ignatjev |
15 Apr 2002 11:58:16 |
     Re: limit |
Dmitriy Kyrhlarov |
10 Apr 2002 13:51:30 |
      limit |
Alexander Anistratenko |
10 Apr 2002 17:56:13 |
       Re: limit |
Dmitriy Kyrhlarov |
10 Apr 2002 15:36:21 |
       Re: limit |
Gleb Smirnoff |
10 Apr 2002 18:41:49 |
       limit |
Alexander Anistratenko |
10 Apr 2002 23:38:37 |
       Re: limit |
Gleb Smirnoff |
11 Apr 2002 01:05:57 |
     limit |
Max Khon |
11 Apr 2002 02:42:54 |
   limit |
Max Khon |
09 Apr 2002 23:34:40 |
 limit |
Ruslan Sulemanov |
14 Apr 2002 02:09:23 |
|
|