| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
Use MUTT_MEM_REALLOC() Reviewed-by: Pietro Cerutti <gahr@gahr.ch> Signed-off-by: Alejandro Colomar <alx@kernel.org> | 1 年前 | |
attach: add selection working sets Add attachment selection helpers that mirror the index dialog's ea_add_selection() behaviour and push receive-side workers onto explicit working sets instead of tag/current-body arguments. - add selection helpers for tagged, counted, and current entries - refactor receive-side workers to consume selected attachment arrays - update receive-attachment actions to resolve once and pass through | 4 个月前 | |
refactor: upgrade macro flags to enum flags Turn #define'd flags into enums. Enums provide: - debugger visibility - compiler diagnostics - symbol scoping by convention - easier navigation/search - cleaner documentation generation - type grouping Naming: - enum has singular ending, e.g. Flag - typedef wrapper has plural ending, e.g. Flags Suffix `_NO_FLAGS` has been renamed to `_NONE` for consistency. | 3 个月前 | |
drop config.h from headers only need it where there's a #if dependency or where config.h defines something like OFF_T | 6 个月前 | |
attach: fix undefined behaviour in attachmatch_free's signature attachmatch_free() was declared as void(struct AttachMatch **) but called everywhere through a (list_free_t) cast - void(void **). Calling a function through an incompatible function-pointer type is undefined behaviour per the C standard, caught by UBSan's function check while testing --ubsan locally (issue found ahead of enabling it in CI - see next commit). Harmless in practice on this ABI (both are just pointer-to-pointer), which is exactly why it went unnoticed. Fixed by giving attachmatch_free() the generic void ** signature list_free_t actually expects, matching the pattern the codebase's own tests use (test_list_free in test/list/mutt_list_free_type.c), and casting internally instead of at each of the 8 call sites. Removed the now technically-unnecessary (list_free_t) casts. | 1 个月前 | |
attach: fix undefined behaviour in attachmatch_free's signature attachmatch_free() was declared as void(struct AttachMatch **) but called everywhere through a (list_free_t) cast - void(void **). Calling a function through an incompatible function-pointer type is undefined behaviour per the C standard, caught by UBSan's function check while testing --ubsan locally (issue found ahead of enabling it in CI - see next commit). Harmless in practice on this ABI (both are just pointer-to-pointer), which is exactly why it went unnoticed. Fixed by giving attachmatch_free() the generic void ** signature list_free_t actually expects, matching the pattern the codebase's own tests use (test_list_free in test/list/mutt_list_free_type.c), and casting internally instead of at each of the 8 call sites. Removed the now technically-unnecessary (list_free_t) casts. | 1 个月前 | |
iwyu: fix includes | 6 个月前 | |
refactor: upgrade macro flags to enum flags Turn #define'd flags into enums. Enums provide: - debugger visibility - compiler diagnostics - symbol scoping by convention - easier navigation/search - cleaner documentation generation - type grouping Naming: - enum has singular ending, e.g. Flag - typedef wrapper has plural ending, e.g. Flags Suffix `_NO_FLAGS` has been renamed to `_NONE` for consistency. | 3 个月前 | |
attach/expando.c: use buf_addch() in body_disposition() Replace buf_printf(buf, "%c", ch) with buf_addch(buf, ch). Avoids the overhead of printf formatting for a single character. Co-authored-by: Amp <amp@ampcode.com> | 6 个月前 | |
iwyu: fix headers | 11 个月前 | |
global: forget-passphrase Function <forget-passphrase> is available from the Index, Attach and Compose Dialogs. Move it to the 'generic' menu, so that it's available globally. | 2 个月前 | |
add more data to function dispatchers | 4 个月前 | |
fix return types | 2 年前 | |
refactor: split selection helpers into separate files Move ea_add_tagged() and its helpers from gui/mview.c to gui/selection.c. Move ba_add_selection(), aa_add_selection() and their helpers from attach/recvattach.c to attach/selection.c. | 3 个月前 | |
attach: fix undefined behaviour in attachmatch_free's signature attachmatch_free() was declared as void(struct AttachMatch **) but called everywhere through a (list_free_t) cast - void(void **). Calling a function through an incompatible function-pointer type is undefined behaviour per the C standard, caught by UBSan's function check while testing --ubsan locally (issue found ahead of enabling it in CI - see next commit). Harmless in practice on this ABI (both are just pointer-to-pointer), which is exactly why it went unnoticed. Fixed by giving attachmatch_free() the generic void ** signature list_free_t actually expects, matching the pattern the codebase's own tests use (test_list_free in test/list/mutt_list_free_type.c), and casting internally instead of at each of the 8 call sites. Removed the now technically-unnecessary (list_free_t) casts. | 1 个月前 | |
module: add Notify object to each globals Add a 'struct Notify *notify' member to every ModuleData struct. Create it with notify_new() in each Module.init() function, set its parent to NeoMutt->notify, and free it in Module.cleanup(). For modules that previously had commented-out init/cleanup code, uncomment the mod_data allocation and deallocation. | 4 个月前 | |
fix: plug Body leak in mutt_decode_save_attachment When called with fp == NULL (the compose-menu path), the function re-parses the attachment via mutt_parse_part() into b->parts, then restores the original b->parts/b->email afterwards so the caller's tree is left untouched. For multipart and message/external-body attachments, mutt_parse_part() builds a fresh, standalone b->parts tree. The restore branch discarded this fresh tree by overwriting b->parts with the saved pointer, but never freed it first - a real leak on any repeated decode/save of the same still-unparsed attachment (e.g. clicking "save attachment" twice without leaving compose). For message/rfc822 attachments the fresh tree is instead b->email->body (the two pointers alias), which email_free() already frees - freeing b->parts unconditionally there would double-free, so the fix only frees it when b->email is NULL and the pointer actually changed. Confirmed via ASan: before the fix, a regression test that calls mutt_decode_save_attachment() twice on the same unparsed multipart body leaked 247 bytes across 5 allocations, all tracing back to the second call's mutt_parse_part(). Clean after the fix. Full suite: 639/639. Fixes #4943. | 1 个月前 | |
refactor: upgrade macro flags to enum flags Turn #define'd flags into enums. Enums provide: - debugger visibility - compiler diagnostics - symbol scoping by convention - easier navigation/search - cleaner documentation generation - type grouping Naming: - enum has singular ending, e.g. Flag - typedef wrapper has plural ending, e.g. Flags Suffix `_NO_FLAGS` has been renamed to `_NONE` for consistency. | 3 个月前 | |
Use MUTT_MEM_CALLOC() Reviewed-by: Pietro Cerutti <gahr@gahr.ch> Signed-off-by: Alejandro Colomar <alx@kernel.org> | 1 年前 | |
drop config.h from headers only need it where there's a #if dependency or where config.h defines something like OFF_T | 6 个月前 | |
split up variable definitions clang-tidy warns: 'warning: multiple declarations in a single statement reduces readability' | 2 个月前 | |
attach: add selection working sets Add attachment selection helpers that mirror the index dialog's ea_add_selection() behaviour and push receive-side workers onto explicit working sets instead of tag/current-body arguments. - add selection helpers for tagged, counted, and current entries - refactor receive-side workers to consume selected attachment arrays - update receive-attachment actions to resolve once and pass through | 4 个月前 | |
refactor: upgrade macro flags to enum flags Turn #define'd flags into enums. Enums provide: - debugger visibility - compiler diagnostics - symbol scoping by convention - easier navigation/search - cleaner documentation generation - type grouping Naming: - enum has singular ending, e.g. Flag - typedef wrapper has plural ending, e.g. Flags Suffix `_NO_FLAGS` has been renamed to `_NONE` for consistency. | 3 个月前 | |
attach: add selection working sets Add attachment selection helpers that mirror the index dialog's ea_add_selection() behaviour and push receive-side workers onto explicit working sets instead of tag/current-body arguments. - add selection helpers for tagged, counted, and current entries - refactor receive-side workers to consume selected attachment arrays - update receive-attachment actions to resolve once and pass through | 4 个月前 | |
refactor: split selection helpers into separate files Move ea_add_tagged() and its helpers from gui/mview.c to gui/selection.c. Move ba_add_selection(), aa_add_selection() and their helpers from attach/recvattach.c to attach/selection.c. | 3 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 1 年前 | ||
| 4 个月前 | ||
| 3 个月前 | ||
| 6 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 6 个月前 | ||
| 3 个月前 | ||
| 6 个月前 | ||
| 11 个月前 | ||
| 2 个月前 | ||
| 4 个月前 | ||
| 2 年前 | ||
| 3 个月前 | ||
| 1 个月前 | ||
| 4 个月前 | ||
| 1 个月前 | ||
| 3 个月前 | ||
| 1 年前 | ||
| 6 个月前 | ||
| 2 个月前 | ||
| 4 个月前 | ||
| 3 个月前 | ||
| 4 个月前 | ||
| 3 个月前 |