| 1085 | #endif |
| 1086 | |
| 1087 | static int cli_activation_transaction_commit_validated(cbm_activation_transaction_t *transaction, |
| 1088 | const cli_binary_validator_t *validator, |
| 1089 | int mode) { |
| 1090 | if (!transaction) { |
| 1091 | return CLI_ERR; |
| 1092 | } |
| 1093 | cbm_activation_transaction_status_t status = cbm_activation_transaction_commit( |
| 1094 | transaction, validator ? cli_binary_fingerprint_validator : NULL, (void *)validator); |
| 1095 | if (status != CBM_ACTIVATION_TRANSACTION_OK) { |
| 1096 | return CLI_ERR; |
| 1097 | } |
| 1098 | #ifndef _WIN32 |
| 1099 | const char *target_path = cbm_activation_transaction_target_path(transaction); |
| 1100 | if (!target_path || chmod(target_path, (mode_t)mode) != 0) { |
| 1101 | (void)cbm_activation_transaction_rollback(transaction); |
| 1102 | return CLI_ERR; |
| 1103 | } |
| 1104 | #else |
| 1105 | (void)mode; |
| 1106 | #endif |
| 1107 | return CLI_OK; |
| 1108 | } |
| 1109 | |
| 1110 | static int cli_activation_transaction_finalize_close( |
| 1111 | cbm_activation_transaction_t **transaction_io) { |
no test coverage detected