WSL2
Viktor Dukhovni
ietf-dane at dukhovni.org
Thu Mar 11 11:19:46 UTC 2021
On Thu, Mar 11, 2021 at 06:05:04AM -0500, Viktor Dukhovni wrote:
> So the question is why the lookup is failing. To that end compiling a
> tracing with "strace" the below C program should tell the story:
>
> #include <sys/types.h>
> #include <grp.h>
> #include <errno.h>
> #include <stdio.h>
>
> int main(int argc, char **argv)
> {
> struct group g, *p;
> char buf[1024];
> int rc;
>
> errno = 0;
> rc = getgrnam_r("nosuchgrouphere", &g, buf, sizeof(buf), &p);
> printf("%p: %m(%d)\n", p, errno);
> return (rc == 0 && p == NULL);
> }
To experiment with other group names and make sure that at least
group "root" or similar works, a slightly extended version is:
#include <sys/types.h>
#include <grp.h>
#include <errno.h>
#include <stdio.h>
int main(int argc, char **argv)
{
char buf[1024];
struct group g, *p;
int rc;
errno = 0;
rc = getgrnam_r(argc > 1 ? argv[1] : "nosuchgrouphere",
&g, buf, sizeof(buf), &p);
printf("%s(%p) %m(%d)\n", p ? g.gr_name : NULL, p, errno);
return (rc == 0 && p == NULL);
}
This gives (again Fedora 31) the expected results:
$ make g
cc g.c -o g
$ ./g
(null)((nil)) Success(0)
$ ./g root
root(0x7ffe6a6225d0) Success(0)
--
Viktor.
More information about the ghc-devs
mailing list