sal/osl/unx/security.cxx | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+)
New commits: commit 5bd8105e3db087b5efc467c45a27ba0f5bd397a7 Author: Tor Lillqvist <t...@collabora.com> AuthorDate: Thu May 16 05:01:46 2019 +0300 Commit: Tor Lillqvist <t...@collabora.com> CommitDate: Fri Sep 20 13:59:07 2019 +0200 Use hand-crafted passwd entry for iOS Simulator as getpwuid_r() does not work getpwuid_r() returns nullptr. Oddly enough, it does work on actual iOS, though. So use hand-crafted values that match behaviour on actual iOS. Change-Id: Idcc95d330a93495938520229e039f340876c3653 (cherry picked from commit 93cdc8bbceafc37a796e68611a22ddc2395635ed) Reviewed-on: https://gerrit.libreoffice.org/79213 Reviewed-by: Tor Lillqvist <t...@collabora.com> Tested-by: Tor Lillqvist <t...@collabora.com> diff --git a/sal/osl/unx/security.cxx b/sal/osl/unx/security.cxx index a7a47640c693..cfa6ab470bca 100644 --- a/sal/osl/unx/security.cxx +++ b/sal/osl/unx/security.cxx @@ -125,6 +125,35 @@ oslSecurity SAL_CALL osl_getCurrentSecurity() if (p == nullptr) { return nullptr; } +#if defined(IOS) && defined(X86_64) + // getpwuid_r() does not work in the iOS simulator + (void) found; + char * buffer = p->m_buffer; + assert(n >= 100); + strcpy(buffer, "mobile"); + p->m_pPasswd.pw_name = buffer; + buffer += strlen(buffer) + 1; + strcpy(buffer, "*"); + p->m_pPasswd.pw_passwd = buffer; + buffer += strlen(buffer) + 1; + p->m_pPasswd.pw_uid = geteuid(); + p->m_pPasswd.pw_gid = getegid(); + p->m_pPasswd.pw_change = 0; + strcpy(buffer, ""); + p->m_pPasswd.pw_class = buffer; + buffer += strlen(buffer) + 1; + strcpy(buffer, "Mobile User"); + p->m_pPasswd.pw_gecos = buffer; + buffer += strlen(buffer) + 1; + strcpy(buffer, "/var/mobile"); // ??? + p->m_pPasswd.pw_dir = buffer; + buffer += strlen(buffer) + 1; + strcpy(buffer, ""); + p->m_pPasswd.pw_shell = buffer; + buffer += strlen(buffer) + 1; + p->m_pPasswd.pw_expire = 0; + return p; +#else switch (getpwuid_r(getuid(), &p->m_pPasswd, p->m_buffer, n, &found)) { case ERANGE: break; @@ -137,6 +166,7 @@ oslSecurity SAL_CALL osl_getCurrentSecurity() deleteSecurityImpl(p); return nullptr; } +#endif } } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits