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.9 required=5.0 tests=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,T_SCC_BODY_TEXT_LINE 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 B84E321281 for ; Thu, 13 Jun 2024 14:57:20 +0200 (CEST) Received: (qmail 3113 invoked by uid 550); 13 Jun 2024 12:57:16 -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 1970 invoked from network); 13 Jun 2024 11:44:49 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.at; s=s31663417; t=1718279080; x=1718883880; i=hombre67@gmx.at; bh=LpsMolKZ/Azr5ZKHGJkI7xlTBjmqXbs0YGEPQmYMhYg=; h=X-UI-Sender-Class:MIME-Version:Message-ID:From:To:Subject: Content-Type:Date:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=UD490XcooYv9Ok4Men/r8rJtZQry50OXpunxKThffTAvd7PHmRT21CDqtUAmfKa3 zEmd9Y3FfI6hXcKLkoHN8Xn4ae/BqxQ4GALksu+L4x0TTRVnPJlWvqu+r4X4O0vRS w5sIIz8+ETr/NwiDFGhHcU1W8Whw31XZLS4oUeqNvrirB2uqCuvMpQ2bHdD/y/WBg YY2iCB4+g+DOWV9oJaA6OyKDacVhD9IcIp+5BKYwxqBcohQSVthc9QA74Kg2d6EKf U9B5y33sTIpreJZ/JScpCPkpWAqA4cWXtlIhf0etjz/6ZvJTV24tx35yKl0ZHVeXN elaiks963zY1xtqZTg== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a MIME-Version: 1.0 Message-ID: From: erny hombre To: musl@lists.openwall.com Content-Type: text/plain; charset=UTF-8 Date: Thu, 13 Jun 2024 13:44:40 +0200 Importance: normal Sensitivity: Normal X-Priority: 3 X-Provags-ID: V03:K1:+MP7BJOFpe9u42AsbhboOcCFrYI36IvEFG6Zn+ir1uRIdPJRSIJi6QEyoUovWRkACOS6N akvUbUI1d1x/1j7VKYehKrdK6jLJscoNLsEaC3pVBK4Zq/55ct9ZisB5Vmo8rUyT6G3g+2AKAl8m MmXeiMZCluqZb99TW4I4ogPgrVlvyhmDtJ8KHPv41oA5AWjJXxU0wuDDCTRVQuM/u0vCMwRDQ4Lx oYg0fHiZ16RZ4Q7zq6vgDPIz/9FmcLoSpILExWLlwYzZ+qeQkUdBtNkww6f+ePneA7CLEDUyNTcL t4= UI-OutboundReport: notjunk:1;M01:P0:+8Xm3U/ALYs=;MwapbV0K0wqkWbZGnz6mB0INUNf fpcQC+gn1ZfMljfE72XApLuh0LwLIS9okODvHhtUZyzx7+7eGM2M1kxrkfzSTbCsTJfoKZEA1 gt/G4us5Dca8g3GhS0tyiQFSl7qQABcmLNcEFEooQuf5or4fAszI0MkRDCabbkJ9pnT9tAFQj sVbQfCorrAnwg3NyTD0QgQQg9ssGeOsN27tH7NfzAJiv4FjHBhSctiPxyoCxMxAWImiVpG3ea FrsrsSF/iZB5+c4tho0hl7RPrH/FyKcqc+NMm+sQaem2JJBfN5uxF2FZJqjVTQt38aTY2zaQa 6ESmlQ51rY/bV0yQSO1HH8WzV7TGAgBmz/TZ9Wk3LmV7xDvgchDeypjMwqbciVmP96YFFqPPX C2Z3KLNVG2eEob4weGavUyOAfAbgk2lkC2IJeXsW8xfvrAtUfJKO6mjEKz3iz36be6mS8NApb dEXk7NEX8CmdtiBPNSVupGvg5c8Ktni6hoPqXx9By7m2/UdYinDaqWe8QbYWAsFjIuIAvm+Np LvgxYYTTuw1+tQt/XVSCWPH2piSuHotuAFhf0Qje3J4G3BG87OWdLl1IlAnK8Eh8Uf9rSNLeb sn9xOkRKLDEtzXvK0jj6Rn5vpb/YSop/Trr5ExlhWFo8A7z9yw5ZsWeIG5WnQVx28s87FjY6U 1R4Mq7+PmADo1IDg2euBsINYarw7C3NRyWrJMhzUZijd+4+zlD4JR0wznnz+GRw= Content-Transfer-Encoding: quoted-printable Subject: [musl] possible bug in syslog Hello, I think there is a bug in syslog: This assert fails (in gcc the test is ok): #if (LOG_MAKEPRI(LOG_DAEMON, LOG_WARNING) !=3D (LOG_DAEMON|LOG_WARNING)) #error "LOG_MAKEPRI" #endif This code should produce a log message, but actually it does not: setlogmask(LOG_UPTO(LOG_NOTICE)); syslog(LOG_MAKEPRI(LOG_LOCAL7, LOG_NOTICE), "LOG_MAKEPRI(LOG_LOCAL7, LOG_= NOTICE)"); This works: syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_NOTICE), "LOG_MAKEPRI(LOG_DAEMON, LOG_= NOTICE)"); =2D-- Maybe these macros in syslog.h are wrong: #define LOG_MAKEPRI(f, p) (((f)<<3)|(p)) #define LOG_FACMASK 0x3f8 #define LOG_FAC(p) (((p)&LOG_FACMASK)>>3) correct version: #define LOG_MAKEPRI(f, p) (((f))|(p)) #define LOG_FACMASK 0xf8 #define LOG_FAC(p) (((p)&LOG_FACMASK)) Also a line in syslog.c, __vsyslog() should be changed from: if (!(log_mask & LOG_MASK(priority&7)) || (priority&~0x3ff)) return; to: if (!(log_mask & LOG_MASK(priority&7)) || (priority&~0xff)) return; =2D--- This is my testprogram to reproduce the error: #include int main(void) { #if 1 // test ok #if (LOG_FAC(LOG_MAKEPRI(LOG_DAEMON, LOG_WARNING)) !=3D LOG_DAEMON) #error "LOG_FAC" #endif #if 0 // test fails #if (LOG_MAKEPRI(LOG_DAEMON, LOG_WARNING) !=3D (LOG_DAEMON|LOG_WARNING)) #error "LOG_MAKEPRI" #endif #endif setlogmask(LOG_UPTO(LOG_NOTICE)); openlog("exampleprog", LOG_CONS | LOG_PID | LOG_NDELAY | LOG_PERROR, LOG_= LOCAL1); syslog(LOG_DAEMON | LOG_NOTICE, "LOG_DAEMON | LOG_NOTICE"); syslog(LOG_LOCAL7 | LOG_NOTICE, "LOG_LOCAL7 | LOG_NOTICE"); syslog(LOG_MAKEPRI(LOG_DAEMON, LOG_NOTICE), "LOG_MAKEPRI(LOG_DAEMON, LOG_= NOTICE)"); // the following call does not write a log message: syslog(LOG_MAKEPRI(LOG_LOCAL7, LOG_NOTICE), "LOG_MAKEPRI(LOG_LOCAL7, LOG_= NOTICE)"); closelog(); return 0; } =2D--- Regards Erwin