From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pf1-x42b.google.com (mail-pf1-x42b.google.com [IPv6:2607:f8b0:4864:20::42b]) by sourceware.org (Postfix) with ESMTPS id 03C713858D28 for ; Fri, 4 Feb 2022 16:24:52 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 03C713858D28 Received: by mail-pf1-x42b.google.com with SMTP id d187so5510561pfa.10 for ; Fri, 04 Feb 2022 08:24:51 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=SNk4jhYw0T1KBb2JwTWRQffQySwKZBC7G4KeMQs2oQs=; b=xaBJXIW38gdSbW7X1f6+AetMbFgsXTPfNLwO41GBdwy5/xhQGC9Y8Aoh1q3wc23Img naRxTUc3JxKNcZtXHP29mgijQUG9kGE8WnARavvy6+QUYSwIVO3RgcOjof5TQ6NN5oc9 bf73098lbDcYZg+/7gNcnxt5OVDJy+MBef38TIh6H/HByGD5ef873NFgKlh4T7+aGOA+ yZuYjO+8JpLSVD3XGkRfKy7vA3FW6Z2hp2XLxNOG2AiRME8e32s2vY+8fnVmnWhTFDCf RGDcM71qNBhoq2MG5KCx4WQ4neKtsE1L5diphbUvO25B0pTnjvyh8J9Xo9bjZE9f2DP4 W96A== X-Gm-Message-State: AOAM5325I8w1XlHxH7K1pdMnSC7DB46/VjCjHPcC4DnBzbaB/v1SZcxJ K5nN0bW+nyg8oDvaYZPAjpAk8+lQrl/ltUTgcOXl2IXRuew= X-Google-Smtp-Source: ABdhPJwS4udIhNfA1Nk8LrXQfD2bQ3m6p1ZNc1DHOMuMKWHfSnj4NcfkHQcMKNNsqs+hmddneEusBM33aXkcHetCmNo= X-Received: by 2002:a05:6a00:15d5:: with SMTP id o21mr3774021pfu.9.1643991890525; Fri, 04 Feb 2022 08:24:50 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Krishna Narayanan Date: Fri, 4 Feb 2022 21:54:37 +0530 Message-ID: Subject: Re: Doubts regarding the issue (bug 62181) To: gcc-help X-Spam-Status: No, score=1.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM, HTML_MESSAGE, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Level: * X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: gcc-help@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-help mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 04 Feb 2022 16:24:54 -0000 Respected Sir, I am getting the same warning for clang and no warning for gcc. I did try the code with fsanitize=address for a detailed note.It is a global buffer overflow,This is the exact error: ==18062==ERROR: AddressSanitizer: global-buffer-overflow on address 0x5607c52ff66f at pc 0x5607c523468b bp 0x7ffc44b71dd0 sp 0x7ffc44b71548 READ of size 1 at 0x5607c52ff66f thread T0 #0 0x5607c523468a in printf_common(void*, char const*, __va_list_tag*) (/home/krishna/xyz/str+0x8268a) #1 0x5607c52356ac in vprintf (/home/krishna/xyz/str+0x836ac) #2 0x5607c52357a6 in printf (/home/krishna/xyz/str+0x837a6) #3 0x5607c52e6a9d in main (/home/krishna/xyz/str+0x134a9d) #4 0x7f6ebf30e0b2 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x270b2) #5 0x5607c51ba41d in _start (/home/krishna/xyz/str+0x841d) 0x5607c52ff66f is located 36 bytes to the right of global variable '*.LC3' defined in 'str.c' (0x5607c52ff640) of size 11 '*.LC3' is ascii string '%s, %s, %s' SUMMARY: AddressSanitizer: global-buffer-overflow (/home/krishna/xyz/str+0x8268a) in printf_common(void*, char const*, __va_list_tag*) Shadow bytes around the buggy address: 0x0ac178a57e70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0ac178a57e80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0ac178a57e90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0ac178a57ea0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0ac178a57eb0: 03 f9 f9 f9 f9 f9 f9 f9 03 f9 f9 f9 f9 f9 f9 f9 =>0x0ac178a57ec0: 03 f9 f9 f9 f9 f9 f9 f9 00 03 f9 f9 f9[f9]f9 f9 0x0ac178a57ed0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0ac178a57ee0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0ac178a57ef0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0ac178a57f00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0x0ac178a57f10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Shadow byte legend (one shadow byte represents 8 application bytes): Addressable: 00 Partially addressable: 01 02 03 04 05 06 07 Heap left redzone: fa Freed heap region: fd Stack left redzone: f1 Stack mid redzone: f2 Stack right redzone: f3 Stack after return: f5 Stack use after scope: f8 Global redzone: f9 Global init order: f6 Poisoned by user: f7 Container overflow: fc Array cookie: ac Intra object redzone: bb ASan internal: fe Left alloca redzone: ca Right alloca redzone: cb Shadow gap: cc ==18062==ABORTING Thanks and Regards, Krishna Narayanan. On Fri, Feb 4, 2022 at 5:43 PM Jonathan Wakely wrote: > On Fri, 4 Feb 2022 at 11:36, Krishna Narayanan via Gcc-help > wrote: > > > > Respected sir, > > I went through the compiler flags and mistake was on my side using the > 'w' > > suppressor flag to remove the warnings without knowing it.Thanks for the > > docs and reply. > > > > By unicode I meant there is a question mark inside a diagonal.(unicode > > error symbol) > > That means it's printing garbage characters that can't be processed as > valid UTF-8, so explicitly NOT unicode. Calling that unicode is very > confusing. > > > > Sir this is perspective with the third print that is > > "cc"+foobar() where I get zR for gcc (9.3.0) and unicode for g++-10.1. > > I got your point regarding the garbage value and to throw a warning is > > better than to get such an unwanted output. > > > > I thought there would be a specific reason why it had come because in > const > > char *a ="aa"+'operator/number' i.e when I add some character with some > > change it gives blank space for numbers and operators, where as for > > addition of 'a' in *a= "aa"+'a' it give 4 times the unicode symbol but > for > > *c="cc" +'c' and *b="bb"+'b' gives a space as output.Yes it has been > quite > > unpredictable and undefined behaviour. > > The nature of undefined behaviour is to be unpredictable. > > Compile with -fsanitize=address to get a lot more detail about what > your buggy code is doing. You'll see an explanation of where the > pointer arithmetic goes, and what's in memory there. > > > > > > > So has the request of warning been granted in the upcoming gcc version!? > > Do you get any warning when compiling your buggy example with gcc? I don't. > > However, when I compile it with clang I get: > > oflow.c:10:23: warning: adding 'char' to a string does not append to > the string [-Wstring-plus-int] > const char *b = "bb" + bar(); > ~~~~~^~~~~~~ > oflow.c:10:23: note: use array indexing to silence this warning > const char *b = "bb" + bar(); > ^ > & [ ] > oflow.c:11:22: warning: adding 'int' to a string does not append to > the string [-Wstring-plus-int] > const char *c = "cc" + foobar(); > ~~~~~^~~~~~~~~~ > oflow.c:11:22: note: use array indexing to silence this warning > const char *c = "cc" + foobar(); > ^ > & [ ] > 2 warnings generated. >