Длинный каталог данных блокирует запуск BYDLO на Linux и macOS

已关闭
#341 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
53/100
Issue 类型
缺陷
描述清晰度
描述清楚
活跃度
活跃
技术栈
csharp

调研方向

Read PlatformServices.cs:15–32, UnixActivationBroker.cs:28–29 and :58, and Program.cs:45–60 to trace how the data directory becomes a Unix socket path and how startup handles failures. Start by reproducing with a path over 120 UTF-8 bytes on Linux or macOS using --mock; done means first and later instances start and activation reaches the primary instance while retaining the lock and permissions.

由索引模型根据 Issue 内容生成。

描述

bug

Приоритет P1 · milestone 0.4.1

Допустимый путь BYDLO_DATA_DIR может превышать предел адреса Unix-сокета. Приложение открывает окно ошибки вместо основного интерфейса даже в первом экземпляре.

Воспроизведение

  1. На Linux/macOS задать приватный каталог данных с полным путём более 120 байт UTF-8.
  2. Запустить приложение с безопасным окружением и --mock.
  3. Конструирование адреса desktop.sock отклонит путь. Изолированная проверка адреса длиной 128 байт воспроизвела ArgumentException до открытия сокета.

Причина: PlatformServices.cs:15–32 принимает каталог данных. UnixActivationBroker.cs:28–29 и :58 добавляет ipc/desktop.sock и передаёт полный путь в UnixDomainSocketEndPoint. Program.cs:45–60 обрабатывает исключение переходом в интерфейс ошибки. Путь файла может быть валиден для ФС и слишком длинным для сокета.

Ожидаемо: первый и последующие экземпляры запускаются с данным каталогом и передают активацию основному экземпляру.

Направление исправления: использовать короткий защищённый runtime-каталог текущего пользователя и детерминированное имя по хешу каталога данных. Сохранить блокировку и ограничение прав.

Аудит ffa65648867139f9e45c15f4b635a83c1ff52c1b.

主要语言
C#
星标
5
派生
1
平均合并
46 分钟
30 天内合并 PR
179

环境准备

这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

endercodezz/BYDLO 的其他 Issue

查看 endercodezz/BYDLO 的全部 Issue

相似的 Issue

更多 C# Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。