src: avoid C strings in more C++ exception throws · nodejs/node@a6c2213
@@ -3526,12 +3526,10 @@ static void CpSyncCopyDir(const FunctionCallbackInfo<Value>& args) {
35263526if (!dereference &&
35273527std::filesystem::is_directory(symlink_target) &&
35283528isInsideDir(symlink_target, current_dest_symlink_target)) {
3529-std::string message =
3529+static constexpr const char* message =
35303530"Cannot copy %s to a subdirectory of self %s";
3531-THROW_ERR_FS_CP_EINVAL(env,
3532- message.c_str(),
3533- symlink_target.c_str(),
3534- current_dest_symlink_target.c_str());
3531+THROW_ERR_FS_CP_EINVAL(
3532+ env, message, symlink_target, current_dest_symlink_target);
35353533return false;
35363534 }
35373535@@ -3540,12 +3538,10 @@ static void CpSyncCopyDir(const FunctionCallbackInfo<Value>& args) {
35403538// and therefore a broken symlink would be created.
35413539if (std::filesystem::is_directory(dest_file_path) &&
35423540isInsideDir(current_dest_symlink_target, symlink_target)) {
3543- std::string message = "cannot overwrite %s with %s";
3541+static constexpr const char* message =
3542+"cannot overwrite %s with %s";
35443543THROW_ERR_FS_CP_SYMLINK_TO_SUBDIRECTORY(
3545- env,
3546- message.c_str(),
3547- current_dest_symlink_target.c_str(),
3548- symlink_target.c_str());
3544+ env, message, current_dest_symlink_target, symlink_target);
35493545return false;
35503546 }
35513547@@ -3597,7 +3593,7 @@ static void CpSyncCopyDir(const FunctionCallbackInfo<Value>& args) {
35973593THROW_ERR_FS_CP_EEXIST(isolate,
35983594"[ERR_FS_CP_EEXIST]: Target already exists: "
35993595"cp returned EEXIST (%s already exists)",
3600- dest_file_path.c_str());
3596+ dest_file_path);
36013597return false;
36023598 }
36033599 env->ThrowStdErrException(error, "cp", dest_str.c_str());