RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.
Bug 2141989 - glibc: Restore IPC_64 support in sysvipc *ctl functions [rhel-8.8.0]
Summary: glibc: Restore IPC_64 support in sysvipc *ctl functions [rhel-8.8.0]
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 8
Classification: Red Hat
Component: glibc
Version: 8.8
Hardware: ppc64le
OS: Unspecified
unspecified
unspecified
Target Milestone: rc
: ---
Assignee: Florian Weimer
QA Contact: Martin Coufal
URL:
Whiteboard:
Depends On: 2141685
Blocks:
TreeView+ depends on / blocked
 
Reported: 2022-11-11 11:01 UTC by Florian Weimer
Modified: 2023-05-16 10:58 UTC (History)
13 users (show)

Fixed In Version: glibc-2.28-222.el8
Doc Type: No Doc Update
Doc Text:
Clone Of: 2141685
Environment:
Last Closed: 2023-05-16 09:03:05 UTC
Type: Bug
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Bugzilla 1912670 0 low CLOSED semctl SEM_STAT_ANY fails to pass the buffer specified by the caller to the kernel 2023-09-02 14:23:27 UTC
Red Hat Issue Tracker RHELPLAN-139153 0 None None None 2022-11-11 11:13:11 UTC
Red Hat Product Errata RHBA-2023:2955 0 None None None 2023-05-16 09:03:14 UTC

Description Florian Weimer 2022-11-11 11:01:13 UTC
+++ This bug was initially created as a clone of Bug #2141685 +++

In order to call SHM_STAT_ANY kernel operations through shmctl on older glibc, it was necessary to pass SHM_STAT_ANY | IPC_64 in the command argument, otherwise the ipc system call would be invoked without the IPC_64 flag, giving unexpected results on powerpc64le-linux-gnu at least.

Current glibc no longer supports that because it checks the command argument for validity without masking the IPC_64 bit.

The backport for bug 1912670 contains a list of accepted shmctl commands, and that does not include SHM_STAT_ANY | IPC_64 either, so the issue is present in current RHEL 8.8 glibc as well.

Comment 2 Florian Weimer 2022-11-11 17:16:45 UTC
The RHEL 8.8 backport is buggy.  The EINVAL check failure is never reported to the caller:

int
__new_shmctl (int shmid, int cmd, struct shmid_ds *buf)
{
  switch (cmd)
    {
    case IPC_RMID:
    case SHM_LOCK:
    case SHM_UNLOCK:
    case IPC_SET:
    case IPC_STAT:
    case SHM_STAT:
    case SHM_STAT_ANY:
    case IPC_INFO:
    case SHM_INFO:
      break;
    default:
      __set_errno (EINVAL);
      break;
    }
#ifdef __ASSUME_DIRECT_SYSVIPC_SYSCALLS
  return INLINE_SYSCALL_CALL (shmctl, shmid, cmd | __IPC_64, buf);
#else
  return INLINE_SYSCALL_CALL (ipc, IPCOP_shmctl, shmid, cmd | __IPC_64, 0,
			      buf);
#endif
}

There's no “return -1;”, so the check failure is hidden from the caller. We should still clean this up and remove the switch statement (to match upstream).

Comment 10 errata-xmlrpc 2023-05-16 09:03:05 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (glibc bug fix and enhancement update), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2023:2955


Note You need to log in before you can comment on or make changes to this bug.