mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-06-17 20:25:19 +00:00
perf target: Introduce perf_target__parse_uid()
Add and use the modern perf_target__parse_uid() and get rid of the old parse_target_uid(). Signed-off-by: Namhyung Kim <namhyung.kim@lge.com> Reviewed-by: David Ahern <dsahern@gmail.com> Cc: David Ahern <dsahern@gmail.com> Cc: Ingo Molnar <mingo@redhat.com> Cc: Namhyung Kim <namhyung@gmail.com> Cc: Paul Mackerras <paulus@samba.org> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Link: http://lkml.kernel.org/r/1336367344-28071-5-git-send-email-namhyung.kim@lge.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
60bbddaaa3
commit
dfe78adaac
6 changed files with 42 additions and 39 deletions
|
@ -9,6 +9,8 @@
|
|||
#include "target.h"
|
||||
#include "debug.h"
|
||||
|
||||
#include <pwd.h>
|
||||
|
||||
|
||||
enum perf_target_errno perf_target__validate(struct perf_target *target)
|
||||
{
|
||||
|
@ -54,3 +56,36 @@ enum perf_target_errno perf_target__validate(struct perf_target *target)
|
|||
|
||||
return ret;
|
||||
}
|
||||
|
||||
enum perf_target_errno perf_target__parse_uid(struct perf_target *target)
|
||||
{
|
||||
struct passwd pwd, *result;
|
||||
char buf[1024];
|
||||
const char *str = target->uid_str;
|
||||
|
||||
target->uid = UINT_MAX;
|
||||
if (str == NULL)
|
||||
return PERF_ERRNO_TARGET__SUCCESS;
|
||||
|
||||
/* Try user name first */
|
||||
getpwnam_r(str, &pwd, buf, sizeof(buf), &result);
|
||||
|
||||
if (result == NULL) {
|
||||
/*
|
||||
* The user name not found. Maybe it's a UID number.
|
||||
*/
|
||||
char *endptr;
|
||||
int uid = strtol(str, &endptr, 10);
|
||||
|
||||
if (*endptr != '\0')
|
||||
return PERF_ERRNO_TARGET__INVALID_UID;
|
||||
|
||||
getpwuid_r(uid, &pwd, buf, sizeof(buf), &result);
|
||||
|
||||
if (result == NULL)
|
||||
return PERF_ERRNO_TARGET__USER_NOT_FOUND;
|
||||
}
|
||||
|
||||
target->uid = result->pw_uid;
|
||||
return PERF_ERRNO_TARGET__SUCCESS;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue