--- daemon/gdm-session-worker.c.orig 2015-04-02 06:52:41.000000000 -0700 +++ daemon/gdm-session-worker.c 2015-05-02 12:56:03.000000000 -0700 @@ -754,6 +754,33 @@ return utf8; } +#ifdef __APPLE__ +#include +#if __MAC_OS_X_VERSION_MIN_REQUIRED <= 1060 +static char * strndup (char const *s, size_t n); +static size_t strnlen (const char *string, size_t maxlen); + +static size_t +strnlen (const char *string, size_t maxlen) +{ + const char *end = memchr (string, '\0', maxlen); + return end ? (size_t) (end - string) : maxlen; +} + +static char * +strndup (char const *s, size_t n) +{ + size_t len = strnlen (s, n); + char *new = malloc (len + 1); + + if (new == NULL) + return NULL; + + new[len] = '\0'; + return memcpy (new, s, len); +} +#endif +#endif static gboolean gdm_session_worker_process_pam_message (GdmSessionWorker *worker, const struct pam_message *query,