From ff6c59699ef71acf04105223d617cbd9dc84b89f Mon Sep 17 00:00:00 2001 From: Siri Hansen Date: Mon, 5 Sep 2011 16:52:56 +0200 Subject: Fix bug in systools:make_tar when path given as just 'ebin' If a path was given as ONLY 'ebin' and not for example './ebin', then systools:make_tar would fail with a function_clause exception in filename:join/1. The bug was in systools_make:appDir/1, which tried to find the parent directory of the given path. This function now uses library functions filename:basename and filename:dirname instead of general list manipulations. --- lib/sasl/src/release_handler.erl | 4 ++-- lib/sasl/src/systools_make.erl | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) (limited to 'lib/sasl/src') diff --git a/lib/sasl/src/release_handler.erl b/lib/sasl/src/release_handler.erl index 4f01f5f559..bc08f94dff 100644 --- a/lib/sasl/src/release_handler.erl +++ b/lib/sasl/src/release_handler.erl @@ -174,7 +174,7 @@ check_install_release(Vsn, Opts) -> check_check_install_options([purge|Opts], _) -> check_check_install_options(Opts, true); -check_check_install_options([Illegal|_],Purge) -> +check_check_install_options([Illegal|_],_Purge) -> {error,{illegal_option,Illegal}}; check_check_install_options([],Purge) -> {ok,Purge}. @@ -2001,7 +2001,7 @@ safe_write_file_m(File, Data, Masters) -> %% 'update_paths' option to release_handler:install_release/2 if the %% code path shall be updated then. %% ----------------------------------------------------------------- -get_new_libs([{App,Vsn,LibDir}|CurrentLibs], NewLibs) -> +get_new_libs([{App,Vsn,_LibDir}|CurrentLibs], NewLibs) -> case lists:keyfind(App,1,NewLibs) of {App,NewVsn,_} = LibInfo when NewVsn =/= Vsn -> [LibInfo | get_new_libs(CurrentLibs,NewLibs)]; diff --git a/lib/sasl/src/systools_make.erl b/lib/sasl/src/systools_make.erl index 7489ee58d2..5dc83e7b2a 100644 --- a/lib/sasl/src/systools_make.erl +++ b/lib/sasl/src/systools_make.erl @@ -1612,9 +1612,9 @@ var_dir(_Dir, _, _, []) -> false. appDir(AppDir) -> - case reverse(filename:split(AppDir)) of - ["ebin"|Dir] -> filename:join(reverse(Dir)); - _ -> AppDir + case filename:basename(AppDir) of + "ebin" -> filename:dirname(AppDir); + _ -> AppDir end. add_modules(Modules, Tar, AppDir, ToDir, Ext) -> -- cgit v1.2.3