Просмотр исходного кода

Fix double decref after failed PyList_SetItem in C tokenizer (#361)

PyList_SetItem steals the item reference even on failure, so the error path must not call Py_DECREF on the same object.

Co-authored-by: Cursor <cursoragent@cursor.com>
pull/363/head
zivenger 4 месяцев назад
committed by GitHub
Родитель
Сommit
c501415a48
Не найден GPG ключ соответствующий данной подписи Идентификатор GPG ключа: B5690EEEBB952194
1 измененных файлов: 0 добавлений и 1 удалений
  1. +0
    -1
      src/mwparserfromhell/parser/ctokenizer/tok_parse.c

+ 0
- 1
src/mwparserfromhell/parser/ctokenizer/tok_parse.c Просмотреть файл

@@ -1753,7 +1753,6 @@ Tokenizer_handle_single_tag_end(Tokenizer *self)
return NULL; return NULL;
} }
if (PyList_SetItem(self->topstack->stack, index, token)) { if (PyList_SetItem(self->topstack->stack, index, token)) {
Py_DECREF(token);
return NULL; return NULL;
} }
return Tokenizer_pop(self); return Tokenizer_pop(self);


Загрузка…
Отмена
Сохранить