Тема: TOCTOU
Показать сообщение отдельно
  #4  
Старый 30.05.2023, 12:42
Nil A
Guest
 
Сообщений: n/a
По умолчанию TOCTOU

Nil A написал(а) к Alexey Khromov в May 23 11:20:06 по местному времени:

Нello, Alexey!

Monday May 29 2023 23:33, from Alexey Khromov -> Nil A:

AK> Так lock-файлы ж есть.
AK> if(config->lockfile)
AK> {
AK> lock_fd = lockFile(config->lockfile, config->advisoryLock);
AK> if(lock_fd < 0)
AK> {
AK> disposeConfig(config);
AK> exit(EX_CANTCREAT);
AK> }
AK> }
AK> Судя по исходникам, lock только для husky

Это про то, что только одна копия hpt может быть запущена, sqpack тоже часть hpt.
Т.е. пока ты делаешь hpt toss, то sqpack будет ждать.

AK> Не знаю, насколько эти блокировки действенны для редактора (скорее,
AK> никак),

У меня в Хаски написано
> LockFile [FidoSysDir]/flag/hpt-lock
И явно голдед туда не смотрит.

AK> однако голдед не держит файл базы постоянно открытой - только
AK> на время чтения/записи.

Свечку держал? А вот голдед держит, всмысле, файл открытым.

AK> Открыл, что есть - вписал msg в нужном формате, закрыл. Так что
AK> возможность спуржить sqpack-ом базу прям в момент записи голдеда
AK> минимальна.

Вот тебе домашнее задание. Зайди в эху в годеде, нажми новое собщение, сотри джам базу (не знаю какой именно файл, .jhr/.jdt/.jdx, лениво смотреть по стрейсу или по коду, хедер наверное), и запости сообщение - оно запоститься на ура. ОС линукс, если что. Потому что под линуксом, как и под другими никсами, можно прям стереть файл, и df не покажет, что место уже освободилось, кернел потом освободит, как на иноду больше никто ссылаться не будет.

Best Regards, Nil
--- GoldED+/LNX 1.1.5
Ответить с цитированием