delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2025/01/17/10:18:49

DMARC-Filter: OpenDMARC Filter v1.4.2 delorie.com 50HFImk2721864
Authentication-Results: delorie.com; dmarc=pass (p=none dis=none) header.from=cygwin.com
Authentication-Results: delorie.com; spf=pass smtp.mailfrom=cygwin.com
DKIM-Filter: OpenDKIM Filter v2.11.0 delorie.com 50HFImk2721864
Authentication-Results: delorie.com;
dkim=pass (1024-bit key, unprotected) header.d=cygwin.com header.i=@cygwin.com header.a=rsa-sha256 header.s=default header.b=vW4+lQJj
X-Recipient: archive-cygwin AT delorie DOT com
DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 13A913844002
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cygwin.com;
s=default; t=1737127128;
bh=W9Duu0RcobVPQWeePuQFxThBZAHx8rpqIjyr+fJmSW0=;
h=Subject:To:Date:List-Id:List-Unsubscribe:List-Archive:List-Post:
List-Help:List-Subscribe:From:Reply-To:Cc:From;
b=vW4+lQJjfP+121s4KbvJPZziaDc6whyMG6/1hW1GzceUvl5izY0fqjGgu285kWjJb
GFFiUo9EkkF9NIawwnEQGbtYvx0Bp3/kEcc86MYTu/rS1ER8UvKmxaEmi/AZsTHGui
LInHFL+Rh4RHngw6M91s7Ci7BSqgwi3EhlLmlKa8=
X-Original-To: cygwin AT cygwin DOT com
Delivered-To: cygwin AT cygwin DOT com
DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org E0A273847706
ARC-Filter: OpenARC Filter v1.0.0 sourceware.org E0A273847706
ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1737127024; cv=none;
b=o/JH0OwjOYlaCQmLK2e7uGj5J6/w2n8mw33F3oPtw4gilxCKXZRjOXof00AwHEab9RAIlYN50432ul3PcQlDkaNn2wCeyt8DBo5CWunFR+lzU4tx9PSuKvAeRCVKs1AM0b7dQL2T9qldfryStGxDOtSVTuu6wumnwR0ac0kMt8s=
ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key;
t=1737127024; c=relaxed/simple;
bh=E0E27jZjOYslf9u+XoqleuznuyINh80JLalBkD4cT8Q=;
h=From:Subject:To:Message-ID:Date:MIME-Version;
b=vUizoWFA6RkCmzaH0/xKBrs3R7FHAuAdKrmNwPuMrpSdp9GyGgR9Sf6JcGXEZEjr8zyJa+noMSfniZrfwWR451uBrwtQRq+HJLx/Bj7IY/s57GywgOKonxmpnbpKv2Q0U2rt93+hcHmuaK05MJQSppEi47cy2gGJaVL5mFqw0uU=
ARC-Authentication-Results: i=1; server2.sourceware.org
DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org E0A273847706
Subject: mq_unlink() always fails with EPERM
To: cygwin AT cygwin DOT com
Message-ID: <8defb91f-7608-3616-66c4-1c7fb8b27001@t-online.de>
Date: Fri, 17 Jan 2025 16:16:57 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
SeaMonkey/2.53.19
MIME-Version: 1.0
X-TOI-EXPURGATEID: 150726::1737127017-567FB9EF-B1F915C7/0/0 CLEAN NORMAL
X-TOI-MSGID: e773d87d-b11b-454d-aff7-c7c06d0392cd
X-BeenThere: cygwin AT cygwin DOT com
X-Mailman-Version: 2.1.30
List-Id: General Cygwin discussions and problem reports <cygwin.cygwin.com>
List-Archive: <https://cygwin.com/pipermail/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-request AT cygwin DOT com?subject=help>
List-Subscribe: <https://cygwin.com/mailman/listinfo/cygwin>,
<mailto:cygwin-request AT cygwin DOT com?subject=subscribe>
From: Christian Franke via Cygwin <cygwin AT cygwin DOT com>
Reply-To: cygwin AT cygwin DOT com
Cc: Christian Franke <Christian DOT Franke AT t-online DOT de>
Sender: "Cygwin" <cygwin-bounces~archive-cygwin=delorie DOT com AT cygwin DOT com>
X-MIME-Autoconverted: from base64 to 8bit by delorie.com id 50HFImk2721864

mq_unlink() does not unlink anything and always returns -1 with errno = 
EPERM.

Testcase:

$ uname -r
3.5.5-1.x86_64

$ cat mqunlink.c
#include <fcntl.h>
#include <mqueue.h>
#include <stdio.h>

int main()
{
   const char mq_name[] = "/mqtest";
   const struct mq_attr attr = { 0, 10, 42, 0 };
   mqd_t mq = mq_open(mq_name, O_RDWR | O_CREAT | O_EXCL, S_IRUSR | 
S_IWUSR, &attr);
   if (mq == (mqd_t)-1) {
     perror("mq_open"); return 1;
   }
   mq_close(mq);
   if (mq_unlink(mq_name)) {
     perror("mq_unlink"); return 1;
   }
   return 0;
}

$ gcc -o mqunlink mqunlink.c

$ ./mqunlink
mq_unlink: Operation not permitted

$ ./mqunlink
mq_open: File exists

$ ls /dev/mqueue/
mqtest

$ rm /dev/mqueue/mqtest # Works on Linux
rm: cannot remove '/dev/mqueue/mqtest': Operation not permitted

$ cmd /c del 'C:\cygwin64\dev\mqueue\mqtest'
...

$ strace ./mqunlink
...
    49   50005 [main] mqunlink 17288 __set_errno: int unlink(const 
char*):1141 setting errno 1
    48   50053 [main] mqunlink 17288 unlink: -1 = 
unlink(/dev/mqueue/mqtest), errno 1
...
mq_unlink: Operation not permitted

-- 
Regards,
Christian


-- 
Problem reports:      https://cygwin.com/problems.html
FAQ:                  https://cygwin.com/faq/
Documentation:        https://cygwin.com/docs.html
Unsubscribe info:     https://cygwin.com/ml/#unsubscribe-simple

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019