Re: [PATCH] cifs-utils: Add uid/gid to SID mapping functions (try #3)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Aug 9, 2011 at 12:34 PM,  <shirishpargaonkar@xxxxxxxxx> wrote:
> From: Shirish Pargaonkar <shirishpargaonkar@xxxxxxxxx>
>
>
> Add functions to map a uid and gid to a SID.  These functions are
> similar to SID to uid and gid mapping functions.
> A SID is what is returned to the cifs module.
>
>
> Signed-off-by: Shirish Pargaonkar <shirishpargaonkar@xxxxxxxxx>
> ---
>  cifs.idmap.c |   37 +++++++++++++++++++++++++++++++++++++
>  1 files changed, 37 insertions(+), 0 deletions(-)
>
> diff --git a/cifs.idmap.c b/cifs.idmap.c
> index 56edb58..80802d7 100644
> --- a/cifs.idmap.c
> +++ b/cifs.idmap.c
> @@ -134,6 +134,43 @@ cifs_idmap(const key_serial_t key, const char *key_descr)
>                goto cifs_idmap_ret;
>        }
>
> +       sidstr = strget(key_descr, "oi:");
> +       if (sidstr) {
> +               uid = atoi(sidstr);
> +               syslog(LOG_DEBUG, "SID: %s, uid: %d", sidstr, uid);
> +               rc = wbcUidToSid(uid, &sid);
> +               if (rc)
> +                       syslog(LOG_DEBUG, "uid %d to SID  error: %d", uid, rc);
> +               if (!rc) { /* SID has been mapped to a uid */
> +                       rc = keyctl_instantiate(key, &sid,
> +                                       sizeof(struct wbcDomainSid), 0);
> +                       if (rc)
> +                               syslog(LOG_ERR, "%s: key inst: %s",
> +                                       __func__, strerror(errno));
> +               }
> +
> +               goto cifs_idmap_ret;
> +       }
> +
> +       sidstr = strget(key_descr, "gi:");
> +       if (sidstr) {
> +               gid = atoi(sidstr);
> +               syslog(LOG_DEBUG, "SID: %s, gid: %d", sidstr, gid);
> +               rc = wbcGidToSid(gid, &sid);
> +               if (rc)
> +                       syslog(LOG_DEBUG, "gid %d to SID error: %d", gid, rc);
> +               if (!rc) { /* SID has been mapped to a gid */
> +                       rc = keyctl_instantiate(key, &sid,
> +                                       sizeof(struct wbcDomainSid), 0);
> +                       if (rc)
> +                               syslog(LOG_ERR, "%s: key inst: %s",
> +                                       __func__, strerror(errno));
> +               }
> +
> +               goto cifs_idmap_ret;
> +       }
> +
> +
>        syslog(LOG_DEBUG, "Invalid key: %s", key_descr);
>
>  cifs_idmap_ret:
> --
> 1.6.0.2
>
>

Hi Jeff, would you consider this patch for a possible merge?
The corrosponding kernel code has been merged in 3.2.
in Steve's git repository.

Regards,

Shirish
--
To unsubscribe from this list: send the line "unsubscribe linux-cifs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux