Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 191fe44c authored by Nick Kralevich's avatar Nick Kralevich Committed by Gerrit Code Review
Browse files

Merge "run-as: Don't require CAP_DAC_READ_SEARCH"

parents c8df252f b0f1540f
Loading
Loading
Loading
Loading
+18 −1
Original line number Diff line number Diff line
@@ -80,13 +80,30 @@ map_file(const char* filename, size_t* filesize)
    struct stat  st;
    size_t  length = 0;
    void*   address = NULL;
    gid_t   oldegid;

    *filesize = 0;

    /*
     * Temporarily switch effective GID to allow us to read
     * the packages file
     */

    oldegid = getegid();
    if (setegid(AID_SYSTEM) < 0) {
        return NULL;
    }

    /* open the file for reading */
    fd = TEMP_FAILURE_RETRY(open(filename, O_RDONLY));
    if (fd < 0)
    if (fd < 0) {
        return NULL;
    }

    /* restore back to our old egid */
    if (setegid(oldegid) < 0) {
        goto EXIT;
    }

    /* get its size */
    ret = TEMP_FAILURE_RETRY(fstat(fd, &st));