From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-2.8 required=5.0 tests=DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED, RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL autolearn=ham autolearn_force=no version=3.4.4 Received: from second.openwall.net (second.openwall.net [193.110.157.125]) by inbox.vuxu.org (Postfix) with SMTP id 3659E22265 for ; Sun, 21 Apr 2024 17:37:14 +0200 (CEST) Received: (qmail 17453 invoked by uid 550); 21 Apr 2024 15:37:10 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-ID: Reply-To: musl@lists.openwall.com Received: (qmail 16382 invoked from network); 21 Apr 2024 15:37:09 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1713713820; x=1714318620; darn=lists.openwall.com; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=0qrl+xqqJpWDPvlr3Ccr0Xkofh+Ic9YubSh+7afn0gI=; b=hkIL5IUN+YV0fdVtNg+5SR2XsSca7wm0kGK48hrPxB0ulP2aIHUr2dzBdM5xmrnA5Y dSbqVaZOBbH8A1Z1U/R+GkMx7MfaVn7SFF32NKyrmsf8gjGLqODxrsoXteaqUfRgKqYB lJUcX+on5FrXF66wk2qJT/5j9mQb63uWcFPOb4ETfyixfIfPbJwakp/ZbXhBA+OtXz1T Iq6ekEUZLR4BO24HSywcbxjgbJJ11e2cW410osAjajzNNMz1qzYkWgIxBvHs8MVzfoET XbwQSwEch8zMcW6hX6YZ+6w1odkl5iMYdNCCLJ/Lh8/6/7xOu+Uuc/D/EoWUVytKqf9a uaFg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1713713820; x=1714318620; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=0qrl+xqqJpWDPvlr3Ccr0Xkofh+Ic9YubSh+7afn0gI=; b=crQgoXSuMJf4Rpgm1wBsBRLoihqVtGz9dgI3Plht50TxMpAIE3O/OFXZ36uVqXxw9A gEW+jUGy/kRTUe/xKVF8aJ9w6mvapnLRWywV1tzI+V3qjKaPOVdfhlqJW9l1UTe8bUsw 0QiZaaSm1EwGo6k2hUogY667XAEL/B3QAOlkA160MSptLiMrGwe1u6o2dBcIUlbfRgtp 1g8ZiVbiS99qM5iIBCXRkFnx9huw8aiwA8hW/babwD5sVzxzA3Q0CVJm/SjwpjltVWHv qW6c8VxxT7Fuxj3P2t+BhXLenxVsvE+B9RH2Eyqscn0cdPCVX3XB89qscVuyqz661Yo+ JUJA== X-Gm-Message-State: AOJu0YzphHrS3jbx4NOFuiUFsYy8JS6ba0iDkVBsFuSexWFkZwb+crj3 7YDGLOlCRasaaNuTzZDg1CZT6XsCrLdaeIFKlnpF4wMuIEA9g8hVKcSyMw== X-Google-Smtp-Source: AGHT+IFS9gUclThbEN6ernitQTg5VJ6ftxEDvfd75y897nOA3nJF+6h6X8H828dW8uGCaAJ3etXTtw== X-Received: by 2002:a05:6a20:729b:b0:1a3:64d5:2dbf with SMTP id o27-20020a056a20729b00b001a364d52dbfmr8108135pzk.33.1713713820156; Sun, 21 Apr 2024 08:37:00 -0700 (PDT) From: Tony Ambardar X-Google-Original-From: Tony Ambardar To: musl@lists.openwall.com Cc: Tony Ambardar Date: Sun, 21 Apr 2024 08:36:40 -0700 Message-Id: <20240421153640.379015-1-Tony.Ambardar@gmail.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [musl] [PATCH v1] add renameat2 linux syscall wrapper This syscall is available since Linux 3.15 and also implemented in glibc from version 2.28. It is commonly used in filesystem or security contexts. Defines RENAME_NOREPLACE, RENAME_EXCHANGE, RENAME_WHITEOUT are guarded by _GNU_SOURCE as with glibc. Signed-off-by: Tony Ambardar --- include/stdio.h | 7 +++++++ src/linux/renameat2.c | 8 ++++++++ 2 files changed, 15 insertions(+) create mode 100644 src/linux/renameat2.c diff --git a/include/stdio.h b/include/stdio.h index cb858618..8312c3bf 100644 --- a/include/stdio.h +++ b/include/stdio.h @@ -158,6 +158,13 @@ char *ctermid(char *); #define L_ctermid 20 #endif +#if defined(_GNU_SOURCE) +#define RENAME_NOREPLACE (1 << 0) +#define RENAME_EXCHANGE (1 << 1) +#define RENAME_WHITEOUT (1 << 2) + +int renameat2(int, const char *, int, const char *, unsigned int); +#endif #if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \ || defined(_BSD_SOURCE) diff --git a/src/linux/renameat2.c b/src/linux/renameat2.c new file mode 100644 index 00000000..3062aa15 --- /dev/null +++ b/src/linux/renameat2.c @@ -0,0 +1,8 @@ +#define _GNU_SOURCE +#include +#include "syscall.h" + +int renameat2(int oldfd, const char *old, int newfd, const char *new, unsigned int flags) +{ + return syscall(SYS_renameat2, oldfd, old, newfd, new, flags); +} -- 2.34.1