int bufsize = sysconf(_SC_GETPW_R_SIZE_MAX);
if (bufsize == -1)
bufsize = 1024;
- _cleanup_free_ char *buffer = (char*)malloc(sizeof(char) * bufsize);
+ _cleanup_free_ char *buffer = (char*)malloc(bufsize);
- if (user && !getpwnam_r(user, &pwd, buffer, sizeof(buffer), &ppwd) && ppwd)
+ if (user && !getpwnam_r(user, &pwd, buffer, bufsize, &ppwd) && ppwd)
uid = pwd.pw_uid;
- if (group && !getgrnam_r(group, &grp, buffer, sizeof(buffer), &pgrp) && pgrp)
+ if (group && !getgrnam_r(group, &grp, buffer, bufsize, &pgrp) && pgrp)
gid = grp.gr_gid;
return !chown(file, uid, gid); // ideally would be fchown, but that is broken