| 1609 | } |
| 1610 | |
| 1611 | static bool main_session_context(const char *preferred_root, char root_out[MAIN_PATH_CAP], |
| 1612 | char allowed_out[MAIN_PATH_CAP], const char **allowed_out_ptr) { |
| 1613 | const char *root = preferred_root && preferred_root[0] ? preferred_root : "."; |
| 1614 | if (!cbm_canonical_path(root, root_out, MAIN_PATH_CAP)) { |
| 1615 | return false; |
| 1616 | } |
| 1617 | char configured[MAIN_PATH_CAP]; |
| 1618 | const char *allowed = cbm_safe_getenv("CBM_ALLOWED_ROOT", configured, sizeof(configured), NULL); |
| 1619 | if (allowed && allowed[0]) { |
| 1620 | if (!cbm_canonical_path(allowed, allowed_out, MAIN_PATH_CAP)) { |
| 1621 | return false; |
| 1622 | } |
| 1623 | *allowed_out_ptr = allowed_out; |
| 1624 | } else { |
| 1625 | allowed_out[0] = '\0'; |
| 1626 | *allowed_out_ptr = NULL; |
| 1627 | } |
| 1628 | return true; |
| 1629 | } |
| 1630 | |
| 1631 | static bool main_set_client_context(cbm_daemon_runtime_client_t *client, const char *preferred_root, |
| 1632 | cbm_mcp_tool_profile_t tool_profile, const char *hook_event, |
no test coverage detected