[Bug 1560899] Re: sqlite triggers syscall error if run as root in snappy default confinement (fchown not allowed)

Ubuntu Foundations Team Bug Bot 1560899 at bugs.launchpad.net
Thu Apr 5 16:21:11 UTC 2018


The attachment "quilt dropin patch against latest xenial" seems to be a
patch.  If it isn't, please remove the "patch" flag from the attachment,
remove the "patch" tag, and if you are a member of the ~ubuntu-
reviewers, unsubscribe the team.

[This is an automated message performed by a Launchpad user owned by
~brian-murray, for any issues please contact him.]

** Tags added: patch

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to sqlite3 in Ubuntu.
https://bugs.launchpad.net/bugs/1560899

Title:
  sqlite triggers syscall error if run as root in snappy default
  confinement (fchown not allowed)

Status in sqlite3 package in Ubuntu:
  Incomplete

Bug description:
  Code currently tries to change user to uid if geteuid is root; this
  call triggers fchown syscall exception in snappy.

  Good news is that in snappy this call is a null op in theory as both
  geteuid as well as uid are 0, so changing wouldnt do anything.

  Fix is to not try to chown if geteuid is equal to uid (e.g. if it
  would be a null op anyway). "Safe" patch should be:

  Index: sqlite3-3.11.0/src/os_unix.c
  ===================================================================
  --- sqlite3-3.11.0.orig/src/os_unix.c
  +++ sqlite3-3.11.0/src/os_unix.c
  @@ -497,7 +497,7 @@ static struct unix_syscall {
   */
   static int robustFchown(int fd, uid_t uid, gid_t gid){
   #if defined(HAVE_FCHOWN)
  -  return osGeteuid() ? 0 : osFchown(fd,uid,gid);
  +  return osGeteuid() || osGeteuid() == uid ? 0 : osFchown(fd,uid,gid);
   #else
     return 0;
   #endif

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/sqlite3/+bug/1560899/+subscriptions



More information about the foundations-bugs mailing list