lp:~wlxing/ecryptfs/lp1695767

Created by Jason Xing on 2017-06-05 and last modified on 2017-06-07

Reproduce case:
1) User doesn't install openssl.
2) Run ecryptfs-manager and make selection 3.
It goes in the infinite loop...which means whatever selection you enter next cannot end this command or alter your option.

Reasons:
1) User doesn't install openssl module.
2) The developers of ecryptfs-manager doesn't take such case into consideration.

Hints in code:
Please look at src/libecryptfs/decision_graph.c From line 558 ti line 597 (see http://bazaar.launchpad.net/~ecryptfs/ecryptfs/trunk/view/head:/src/libecryptfs/decision_graph.c#L558):
It will prompt user to enter the selection which is set to "val" variable and then run into "else" portion instead of "if" portion. However, "node->num_transitions" which was set to zero before causes the terrible result (infinite loop): it will skip for loop and test if the "valid_val" is 0. If not, go back to get_value part (line 558) and do it one more time.

Explanation for the patch:
Adding several lines to take such a case into consideration, through testing whether "num_transitions" is set to zero or not we could prevent the infinite loop. If it is set to zero, it will return -EINVAL because "num_transitions" means how many options this command could show to users and zero means that user has no option to choose.

Any suggestions are welcome :)

Get this branch:
bzr branch lp:~wlxing/ecryptfs/lp1695767
Only Jason Xing can upload to this branch. If you are Jason Xing please log in for upload directions.

Branch merges

Related bugs

Related blueprints

Branch information

Owner:
Jason Xing
Project:
eCryptfs
Status:
Development

Recent revisions

888. By Jason Xing on 2017-06-07

Reproduce case:
1) User doesn't install openssl.
2) Run ecryptfs-manager and make selection 3.
It goes in the infinite loop...which means whatever selection you enter next cannot end this command or alter your option.

Explanation for the patch:
Adding several lines to take such a case into consideration, through testing whether "num_transitions" is set to zero or not we could prevent the infinite loop. If it is set to zero, it will return -EINVAL because "num_transitions" means how many options this command could show to users and zero means that user has no option to choose. (LP: #1695767)

887. By Tyler Hicks on 2017-05-25

Add Jason's mount option parser fix to debian/changelog

886. By Jason Xing on 2017-05-25

libecryptfs: Handle '=' characters in mount option string values

Users cannot mount ecryptfs with "-o passphrase_passwd_file=mykey" (<mykey> is
"passwd=123=abc") or "-o passwd=123=abc". Because the passphrase user uses
includes "=" character.

Because in the manner of process_comma_tok() function, ecryptfs will store
"passwd=123" as the @current->name and "abc" as @current->value. That will go
wrong when we go into tf_pass_file() function because it cannot match the name
"passphrase_passwd" or "passwd".

Add two lines in process_comma_tok() to change that case. If we match one "="
character in the string, we don't need to loop and match another "=" again.

885. By Tyler Hicks on 2016-07-15

debian/changelog: Annotate CVE-2015-8946 and CVE-2016-6224

884. By Tyler Hicks on 2016-07-13

debian/ecryptfs-utils.postinst: Fix any unencrypted GPT swap partitions
that have mistakenly remained marked as auto mount. This should only
modify the swap partitions on systems that ecryptfs-setup-swap has been
used on. (LP: #1447282, LP: #1597154)

883. By Tyler Hicks on 2016-07-07

tests/kernel/lp-872905.sh: Adjust the test to account for upstream kernel
changes that were preventing the test from cleaning up after itself. The kernel
had a change of behavior where mounts that are configured to use encrypted
filenames will not be able to successfully lookup lower files with plaintext
filenames. This change caused the lower filler file, which was being created
directly in the lower filesystem, to not be removed during the test cleanup and
all of the following tests to fail since the lower filesystem remained full.

The upstream kernel commit mentioned above is:

  88ae4ab ecryptfs_lookup(): try either only encrypted or plaintext name

882. By Tyler Hicks on 2016-07-06

src/utils/ecryptfs-setup-swap: Prevent unencrypted swap partitions from
being automatically enabled by systemd. This bug affected GPT partitioned
NVMe/MMC drives and resulted in the swap partition being used without
encryption. It also resulted in a usability issue in that users were
erroneously prompted to enter a pass-phrase to unlock their swap partition
at boot. (LP: #1597154)

881. By Tyler Hicks on 2016-04-25

[ Richard Laager ]
* src/utils/ecryptfs-setup-private: LP: #1574174
  - Adjust the test for discovering already active mount point destinations
    so that it doesn't accidentally match mount point sources.
  - Fixes ecryptfs-setup-private issue when attempting to use ZFS and
    eCryptfs together

880. By Dustin Kirkland  on 2016-02-27

opening 112

879. By Dustin Kirkland  on 2016-02-27

releasing package ecryptfs-utils version 111

Branch metadata

Branch format:
Branch format 7
Repository format:
Bazaar repository format 2a (needs bzr 1.16 or later)
Stacked on:
lp:ecryptfs
This branch contains Public information 
Everyone can see this information.

Subscribers