Bug 589613
Summary: | unify string representation of NULL in vsprintf.c | ||
---|---|---|---|
Product: | Red Hat Enterprise Linux 6 | Reporter: | Dan Horák <dhorak> |
Component: | kernel | Assignee: | Dave Anderson <anderson> |
Status: | CLOSED CURRENTRELEASE | QA Contact: | Red Hat Kernel QE team <kernel-qe> |
Severity: | medium | Docs Contact: | |
Priority: | high | ||
Version: | 6.0 | CC: | arozansk, jbaron, pbenas, qcai |
Target Milestone: | rc | ||
Target Release: | --- | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2010-11-11 15:43:50 UTC | Type: | --- |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Description
Dan Horák
2010-05-06 14:49:20 UTC
This request was evaluated by Red Hat Product Management for inclusion in a Red Hat Enterprise Linux major release. Product Management has requested further review of this request by Red Hat Engineering, for potential inclusion in a Red Hat Enterprise Linux Major release. This request is not yet committed for inclusion. Patch(es) available on kernel-2.6.32-29.el6 I am not probably triggering the bug correctly... [root@dell-pesc430-03 ~]# uname -r 2.6.32-28.el6.x86_64 [root@dell-pesc430-03 ~]# gcc test.c [root@dell-pesc430-03 ~]# ./a.out (nil) [root@dell-pesc430-03 ~]# uname -r 2.6.32-29.el6.x86_64 [root@dell-pesc430-03 ~]# gcc test.c [root@dell-pesc430-03 ~]# ./a.out (nil) test.c: #include <stdio.h> #include <stdarg.h> void vout (char * str, char * fmt, ...); int main() { char str[100]; vout(str, "%p", NULL); printf("%s\n", str); return 0; } void vout (char * str, char * fmt, ...) { va_list args; va_start(args, fmt); vsprintf(str, fmt, args); va_end(args); } It's about kernel internal implementation of vsprintf() not the user-space one from glibc so in my opinion you need to prepare a kernel module. The changes were made to a kernel library file, which would require that either a base kernel function, or a kernel module function, pass a NULL string into one of the functions that would return a string containing "(null)" instead of "<NULL>". But writing a kernel module that does something like that seems a bit of overkill... If you just take the kernel src.rpm file, do an "rpmbuild -bp kernel.spec", and then simply inspect the "linux-2.6.32.noarch/lib/vsprintf.c" file, you can verify that the two former instances of "<NULL>" that were in the string() and vbin_printf() functions have been replaced with "(null)". VERIFIED Sanity only. 2.6.32-29 src code changed according the patch. 2.6.32-29 /lib/vsprintf.c: 553 if ((unsigned long)s < PAGE_SIZE) 554 s = "(null)"; 1446 if ((unsigned long)save_str > (unsigned long)-PAGE_SIZE 1447 || (unsigned long)save_str < PAGE_SIZE) 1448 save_str = "(null)"; Red Hat Enterprise Linux 6.0 is now available and should resolve the problem described in this bug report. This report is therefore being closed with a resolution of CURRENTRELEASE. You may reopen this bug report if the solution does not work for you. |