Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:Ledest:erlang:24
erlang
0463-kernel-Reject-.app-files-with-invalid-para...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0463-kernel-Reject-.app-files-with-invalid-parameters.patch of Package erlang
From 753c719a4332cca00ba7eac644335e4a68d9f127 Mon Sep 17 00:00:00 2001 From: Lukas Larsson <lukas@erlang.org> Date: Mon, 11 Apr 2022 14:30:52 +0200 Subject: [PATCH] kernel: Reject .app files with invalid parameters Closes #5877 --- lib/kernel/src/application_controller.erl | 5 +++++ lib/kernel/test/application_SUITE.erl | 17 +++++++++++++++-- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/lib/kernel/src/application_controller.erl b/lib/kernel/src/application_controller.erl index 1f428c560b..b82c3b0784 100644 --- a/lib/kernel/src/application_controller.erl +++ b/lib/kernel/src/application_controller.erl @@ -1541,6 +1541,11 @@ make_appl_i({application, Name, Opts}) when is_atom(Name), is_list(Opts) -> end, Phases = get_opt(start_phases, Opts, undefined), Env = get_opt(env, Opts, []), + case check_para(Env, Name) of + ok -> ok; + {error, Reason} -> + throw({error, {invalid_options, Reason}}) + end, MaxP = get_opt(maxP, Opts, infinity), MaxT = get_opt(maxT, Opts, infinity), IncApps = get_opt(included_applications, Opts, []), diff --git a/lib/kernel/test/application_SUITE.erl b/lib/kernel/test/application_SUITE.erl index 6817435576..019ca3e7f1 100644 --- a/lib/kernel/test/application_SUITE.erl +++ b/lib/kernel/test/application_SUITE.erl @@ -35,7 +35,7 @@ permit_false_start_local/1, permit_false_start_dist/1, script_start/1, nodedown_start/1, init2973/0, loop2973/0, loop5606/1, otp_16504/1]). --export([config_change/1, persistent_env/1, +-export([config_change/1, persistent_env/1, invalid_app_file/1, distr_changed_tc1/1, distr_changed_tc2/1, ensure_started/1, ensure_all_started/1, shutdown_func/1, do_shutdown/1, shutdown_timeout/1, shutdown_deadlock/1, @@ -62,7 +62,7 @@ all() -> {group, distr_changed}, config_change, shutdown_func, shutdown_timeout, shutdown_deadlock, config_relative_paths, optional_applications, persistent_env, handle_many_config_files, format_log_1, format_log_2, - configfd_bash, configfd_port_program]. + configfd_bash, configfd_port_program, invalid_app_file]. groups() -> [{reported_bugs, [], @@ -2439,6 +2439,19 @@ persistent_env(Conf) when is_list(Conf) -> %% Clean up ok = application:unload(appinc). +%% Test that application app file error handling works as it should +invalid_app_file(_Config) -> + + {error,{bad_application,{application,"name",[]}}} + = application:load({application, "name",[]}), + {error,{invalid_options,#{}}} + = application:load({application, name,#{}}), + {error, {invalid_options,_}} = + application:load({application,name,[{env,[{"key",value}]}]}), + {error, {invalid_options,_}} = + application:load({application,name,[{env,[key]}]}), + {error, {invalid_options,_}} = + application:load({application,name,[{env,[{key,value},{key,value}]}]}). %% Test more than one config file defined by one -config parameter: handle_many_config_files(Conf) when is_list(Conf) -> -- 2.35.3
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor