• Al Viro's avatar
    LSM: hide struct security_mnt_opts from any generic code · 204cc0cc
    Al Viro authored
    Keep void * instead, allocate on demand (in parse_str_opts, at the
    moment).  Eventually both selinux and smack will be better off
    with private structures with several strings in those, rather than
    this "counter and two pointers to dynamically allocated arrays"
    ugliness.  This commit allows to do that at leisure, without
    disrupting anything outside of given module.
    
    Changes:
    	* instead of struct security_mnt_opt use an opaque pointer
    initialized to NULL.
    	* security_sb_eat_lsm_opts(), security_sb_parse_opts_str() and
    security_free_mnt_opts() take it as var argument (i.e. as void **);
    call sites are unchanged.
    	* security_sb_set_mnt_opts() and security_sb_remount() take
    it by value (i.e. as void *).
    	* new method: ->sb_free_mnt_opts().  Takes void *, does
    whatever freeing that needs to be done.
    	* ->sb_set_mnt_opts() and ->sb_remount() might get NULL as
    mnt_opts argument, meaning "empty".
    Reviewed-by: default avatarDavid Howells <dhowells@redhat.com>
    Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
    204cc0cc
super.c 40.5 KB