fix(events): valider le journal avant chmod et troncature (#59) #65

Merged
silex merged 1 commit from fix/journal-validation-before-mutation-59 into main 2026-09-29 22:05:43 +00:00
Owner

Fixes #59

Correctif

  • Retirer O_TRUNC de l'ouverture initiale ; valider type, EUID et lien unique avant toute modification.
  • Appliquer 0600 puis revérifier le descripteur ; tronquer uniquement ce même descripteur validé lorsque la rotation le demande.
  • Conserver O_NOFOLLOW, O_NONBLOCK et O_CLOEXEC.

Régressions

Tests rouges avant le correctif : hardlinks et FIFO avec lecteur voient leurs permissions modifiées malgré le rejet ; la rotation mono-fichier tronque un fichier tiers remplacé par hardlink.

Les tests vérifient maintenant absence de modification (mode, taille, contenu), symlinks/répertoires, append et troncature nominales, rotation mono-fichier bornée, et validation avant/après chmod avec un propriétaire étranger simulé dans les métadonnées. Les tests existants de rotation et de propagation des pannes restent verts.

Vérification

  • 50 répétitions de tout internal/events sous -race.
  • make lint test GO_TEST_FLAGS='-race -count=1'.
  • git diff --check.

Documentation de session actualisée. Aucun changement du déploiement local.

Fixes #59 ## Correctif - Retirer O_TRUNC de l'ouverture initiale ; valider type, EUID et lien unique avant toute modification. - Appliquer 0600 puis revérifier le descripteur ; tronquer uniquement ce même descripteur validé lorsque la rotation le demande. - Conserver O_NOFOLLOW, O_NONBLOCK et O_CLOEXEC. ## Régressions Tests rouges avant le correctif : hardlinks et FIFO avec lecteur voient leurs permissions modifiées malgré le rejet ; la rotation mono-fichier tronque un fichier tiers remplacé par hardlink. Les tests vérifient maintenant absence de modification (mode, taille, contenu), symlinks/répertoires, append et troncature nominales, rotation mono-fichier bornée, et validation avant/après chmod avec un propriétaire étranger simulé dans les métadonnées. Les tests existants de rotation et de propagation des pannes restent verts. ## Vérification - 50 répétitions de tout internal/events sous -race. - make lint test GO_TEST_FLAGS='-race -count=1'. - git diff --check. Documentation de session actualisée. Aucun changement du déploiement local.
fix(events): validate journal before chmod and truncation (#59)
Some checks failed
CI / amd64 / Go 1.23.12 (push) Has been cancelled
CI / amd64 / Go 1.26.5 (push) Has been cancelled
CI / arm64 cross-build / Go 1.23.12 (push) Has been cancelled
CI / arm64 cross-build / Go 1.26.5 (push) Has been cancelled
CI / amd64 / Go 1.23.12 (pull_request) Has been cancelled
CI / amd64 / Go 1.26.5 (pull_request) Has been cancelled
CI / arm64 cross-build / Go 1.23.12 (pull_request) Has been cancelled
CI / arm64 cross-build / Go 1.26.5 (pull_request) Has been cancelled
d2008111be
silex merged commit 495c76f460 into main 2026-09-29 22:05:43 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
2027a/murmur!65
No description provided.