Lines Matching +full:buffer +full:- +full:size
1 /*-
46 passwd_marshal_func(struct passwd *pwd, char *buffer, size_t *buffer_size) in passwd_marshal_func() argument
50 size_t desired_size, size; in passwd_marshal_func() local
54 strlen(pwd->pw_name) + 1; in passwd_marshal_func()
55 if (pwd->pw_passwd != NULL) in passwd_marshal_func()
56 desired_size += strlen(pwd->pw_passwd) + 1; in passwd_marshal_func()
57 if (pwd->pw_class != NULL) in passwd_marshal_func()
58 desired_size += strlen(pwd->pw_class) + 1; in passwd_marshal_func()
59 if (pwd->pw_gecos != NULL) in passwd_marshal_func()
60 desired_size += strlen(pwd->pw_gecos) + 1; in passwd_marshal_func()
61 if (pwd->pw_dir != NULL) in passwd_marshal_func()
62 desired_size += strlen(pwd->pw_dir) + 1; in passwd_marshal_func()
63 if (pwd->pw_shell != NULL) in passwd_marshal_func()
64 desired_size += strlen(pwd->pw_shell) + 1; in passwd_marshal_func()
66 if ((*buffer_size < desired_size) || (buffer == NULL)) { in passwd_marshal_func()
73 memset(buffer, 0, desired_size); in passwd_marshal_func()
76 p = buffer + sizeof(struct passwd) + sizeof(char *); in passwd_marshal_func()
77 memcpy(buffer + sizeof(struct passwd), &p, sizeof(char *)); in passwd_marshal_func()
80 size = strlen(new_pwd.pw_name); in passwd_marshal_func()
81 memcpy(p, new_pwd.pw_name, size); in passwd_marshal_func()
83 p += size + 1; in passwd_marshal_func()
87 size = strlen(new_pwd.pw_passwd); in passwd_marshal_func()
88 memcpy(p, new_pwd.pw_passwd, size); in passwd_marshal_func()
90 p += size + 1; in passwd_marshal_func()
94 size = strlen(new_pwd.pw_class); in passwd_marshal_func()
95 memcpy(p, new_pwd.pw_class, size); in passwd_marshal_func()
97 p += size + 1; in passwd_marshal_func()
101 size = strlen(new_pwd.pw_gecos); in passwd_marshal_func()
102 memcpy(p, new_pwd.pw_gecos, size); in passwd_marshal_func()
104 p += size + 1; in passwd_marshal_func()
108 size = strlen(new_pwd.pw_dir); in passwd_marshal_func()
109 memcpy(p, new_pwd.pw_dir, size); in passwd_marshal_func()
111 p += size + 1; in passwd_marshal_func()
115 size = strlen(new_pwd.pw_shell); in passwd_marshal_func()
116 memcpy(p, new_pwd.pw_shell, size); in passwd_marshal_func()
118 p += size + 1; in passwd_marshal_func()
121 memcpy(buffer, &new_pwd, sizeof(struct passwd)); in passwd_marshal_func()
127 passwd_lookup_func(const char *key, size_t key_size, char **buffer, in passwd_lookup_func() argument
132 size_t size; in passwd_lookup_func() local
138 assert(buffer != NULL); in passwd_lookup_func()
149 size = key_size - sizeof(enum nss_lookup_type) + 1; in passwd_lookup_func()
150 login = calloc(1, size); in passwd_lookup_func()
152 memcpy(login, key + sizeof(enum nss_lookup_type), size - 1); in passwd_lookup_func()
183 *buffer = malloc(*buffer_size); in passwd_lookup_func()
184 assert(*buffer != NULL); in passwd_lookup_func()
185 passwd_marshal_func(result, *buffer, buffer_size); in passwd_lookup_func()
203 passwd_mp_lookup_func(char **buffer, size_t *buffer_size, void *mdata) in passwd_mp_lookup_func() argument
211 *buffer = malloc(*buffer_size); in passwd_mp_lookup_func()
212 assert(*buffer != NULL); in passwd_mp_lookup_func()
213 passwd_marshal_func(result, *buffer, buffer_size); in passwd_mp_lookup_func()
236 retval->parent.name = strdup("passwd"); in init_passwd_agent()
237 assert(retval->parent.name != NULL); in init_passwd_agent()
239 retval->parent.type = COMMON_AGENT; in init_passwd_agent()
240 retval->lookup_func = passwd_lookup_func; in init_passwd_agent()
256 retval->parent.name = strdup("passwd"); in init_passwd_mp_agent()
257 retval->parent.type = MULTIPART_AGENT; in init_passwd_mp_agent()
258 retval->mp_init_func = passwd_mp_init_func; in init_passwd_mp_agent()
259 retval->mp_lookup_func = passwd_mp_lookup_func; in init_passwd_mp_agent()
260 retval->mp_destroy_func = passwd_mp_destroy_func; in init_passwd_mp_agent()
261 assert(retval->parent.name != NULL); in init_passwd_mp_agent()