diff options
author | Siri Hansen <[email protected]> | 2011-09-05 16:52:56 +0200 |
---|---|---|
committer | Siri Hansen <[email protected]> | 2011-09-05 16:52:56 +0200 |
commit | ff6c59699ef71acf04105223d617cbd9dc84b89f (patch) | |
tree | d931131fbdd2174d0ff4de4ed4fa5870fc96777c /lib/sasl/src | |
parent | 53475d05e282cf04c9d206240961363a7189c6e7 (diff) | |
download | otp-ff6c59699ef71acf04105223d617cbd9dc84b89f.tar.gz otp-ff6c59699ef71acf04105223d617cbd9dc84b89f.tar.bz2 otp-ff6c59699ef71acf04105223d617cbd9dc84b89f.zip |
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.
Diffstat (limited to 'lib/sasl/src')
-rw-r--r-- | lib/sasl/src/release_handler.erl | 4 | ||||
-rw-r--r-- | lib/sasl/src/systools_make.erl | 6 |
2 files changed, 5 insertions, 5 deletions
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) -> |