diff --git a/libc/libc.cc b/libc/libc.cc index 6599d84a8795f342492d179d2160a6c11c499eca..481687ab6ce00a49c4d5af06015a7ef637c4eca2 100644 --- a/libc/libc.cc +++ b/libc/libc.cc @@ -7,6 +7,7 @@ #include <limits> #include <sys/resource.h> #include <pwd.h> +#include <sys/utsname.h> int libc_error(int err) { @@ -179,3 +180,14 @@ int getpwuid_r(uid_t uid, struct passwd *pwd, *result = pwd; return 0; } + +int uname(struct utsname* u) +{ + // lie, to avoid confusing the payload. + strcpy(u->sysname, "Linux"); + strcpy(u->nodename, "home"); + strcpy(u->release, "3.7"); + strcpy(u->version, "#1 SMP"); + strcpy(u->machine, "x86_64"); + return 0; +}