add_cachebyname(name, uuid, mytype, 0);
}
-cleanup:
#ifdef HAVE_LDAP
if (uuid_string) free(uuid_string);
#endif
int ret;
uid_t uid;
gid_t gid;
+ uint32_t tmp;
struct passwd *pwd;
struct group *grp;
/* Check if UUID is a client local one */
if (memcmp(uuidp, local_user_uuid, 12) == 0) {
*type = UUID_USER;
- uid = ntohl(*(uint32_t *)(uuidp + 12));
+ memcpy(&tmp, uuidp + 12, sizeof(uint32_t));
+ uid = ntohl(tmp);
if ((pwd = getpwuid(uid)) == NULL) {
/* not found, add negative entry to cache */
+ *name = NULL;
add_cachebyuuid(uuidp, "UUID_ENOENT", UUID_ENOENT, 0);
ret = -1;
} else {
}
LOG(log_debug, logtype_afpd,
"getnamefromuuid{local}: UUID: %s -> name: %s, type:%s",
- uuid_bin2string(uuidp), *name, uuidtype[(*type) & UUIDTYPESTR_MASK]);
+ uuid_bin2string(uuidp), *name ? *name : "-", uuidtype[(*type) & UUIDTYPESTR_MASK]);
return ret;
} else if (memcmp(uuidp, local_group_uuid, 12) == 0) {
*type = UUID_GROUP;
- gid = ntohl(*(uint32_t *)(uuidp + 12));
+ memcpy(&tmp, uuidp + 12, sizeof(uint32_t));
+ gid = ntohl(tmp);
if ((grp = getgrgid(gid)) == NULL) {
/* not found, add negative entry to cache */
add_cachebyuuid(uuidp, "UUID_ENOENT", UUID_ENOENT, 0);