Raymond Toy pushed to branch issue-393-os-common-getpwuid at cmucl / cmucl
Commits:
-
11294c70
by Raymond Toy at 2025-03-28T13:39:34-07:00
2 changed files:
Changes:
... | ... | @@ -2413,16 +2413,10 @@ |
2413 | 2413 | (dir "" :type string)
|
2414 | 2414 | (shell "" :type string))
|
2415 | 2415 | |
2416 | -;; See <pwd.h>
|
|
2417 | -;;
|
|
2418 | -;; While each OS may contain additional fields, we only need the ones
|
|
2419 | -;; that are used the user-info structure.
|
|
2420 | -;;
|
|
2421 | -;; NOTE: This may NOT be the actual OS-defined passwd structure. It
|
|
2422 | -;; is the structure returned by os_getpwuid (in unix-getpwuid).
|
|
2423 | - |
|
2416 | +;; The C structure that is returned by os_getpwuid containing the info
|
|
2417 | +;; that we use to fill the user-info object.
|
|
2424 | 2418 | (def-alien-type nil
|
2425 | - (struct unix-passwd
|
|
2419 | + (struct os-unix-info
|
|
2426 | 2420 | (pw-name (* char)) ; user's login name
|
2427 | 2421 | (pw-passwd (* char)) ; no longer used
|
2428 | 2422 | (pw-uid uid-t) ; user id
|
... | ... | @@ -950,7 +950,7 @@ os_get_user_homedir(const char* name, int *status) |
950 | 950 | /*
|
951 | 951 | * This MUST match the definition in code/unix.lisp.
|
952 | 952 | */
|
953 | -struct unix_passwd
|
|
953 | +struct os_user_info
|
|
954 | 954 | {
|
955 | 955 | char* pw_name;
|
956 | 956 | char* pw_passwd;
|
... | ... | @@ -961,7 +961,7 @@ struct unix_passwd |
961 | 961 | char* pw_shell;
|
962 | 962 | };
|
963 | 963 |
|
964 | -struct unix_passwd*
|
|
964 | +struct os_user_info*
|
|
965 | 965 | os_getpwuid(uid_t uid)
|
966 | 966 | {
|
967 | 967 | char initial[1024];
|
... | ... | @@ -969,7 +969,7 @@ os_getpwuid(uid_t uid) |
969 | 969 | size_t size;
|
970 | 970 | struct passwd pwd;
|
971 | 971 | struct passwd *ppwd;
|
972 | - struct unix_passwd *result = NULL;
|
|
972 | + struct os_user_info *result = NULL;
|
|
973 | 973 | |
974 | 974 | buffer = initial;
|
975 | 975 | obuffer = NULL;
|
... | ... | @@ -988,7 +988,7 @@ again: |
988 | 988 | * that.
|
989 | 989 | */
|
990 | 990 | if (ppwd != NULL) {
|
991 | - result = (struct unix_passwd*) malloc(sizeof(pwd));
|
|
991 | + result = (struct os_user_info*) malloc(sizeof(*result));
|
|
992 | 992 | result->pw_name = strdup(pwd.pw_name);
|
993 | 993 | result->pw_passwd = strdup(pwd.pw_passwd);
|
994 | 994 | result->pw_uid = pwd.pw_uid;
|
... | ... | @@ -1025,7 +1025,7 @@ again: |
1025 | 1025 | * os_getpwuid().
|
1026 | 1026 | */
|
1027 | 1027 | void
|
1028 | -os_free_getpwuid(struct passwd* pwd)
|
|
1028 | +os_free_getpwuid(struct os_user_info* pwd)
|
|
1029 | 1029 | {
|
1030 | 1030 | free(pwd->pw_name);
|
1031 | 1031 | free(pwd->pw_passwd);
|