This service will be undergoing maintenance at 00:00 UTC, 2017-10-23 It is expected to last about 30 minutes
Bug 454500 - unaligned access warnings from libresolv
unaligned access warnings from libresolv
Status: CLOSED RAWHIDE
Product: Fedora
Classification: Fedora
Component: glibc (Show other bugs)
rawhide
ia64 Linux
high Severity high
: ---
: ---
Assigned To: Jakub Jelinek
Fedora Extras Quality Assurance
:
Depends On:
Blocks: fedora-ia64
  Show dependency treegraph
 
Reported: 2008-07-08 16:21 EDT by Doug Chapman
Modified: 2008-07-20 04:54 EDT (History)
1 user (show)

See Also:
Fixed In Version: 2.8.90-9
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2008-07-20 04:54:47 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Doug Chapman 2008-07-08 16:21:08 EDT
Description of problem:
Recent versions of libresolv from glibc-2.8.90 and above are hitting a massive
number of unaligned access warnings.  This are commonly seem when using yum.

yum(6912): unaligned access to 0x60000fffffe5fdbe, ip=0x20000000069569f1
yum(6912): unaligned access to 0x60000fffffe5fdbe, ip=0x2000000006956a10
yum(6912): unaligned access to 0x60000fffffe5fdbe, ip=0x2000000006956a40
yum(6912): unaligned access to 0x60000fffffe5fdbe, ip=0x2000000006959350
yum(6912): unaligned access to 0x60000fffffe60885, ip=0x200000000695b6d0


The culprit appears to bit this bit of code in resolv/res_query.c


    143             n = res_nmkquery(statp, QUERY, name, class, T_A, NULL, 0, NULL,
    144                              query1, bufsize);
    145             if (n > 0)
    146               {
    147                 if ((oflags & RES_F_EDNS0ERR) == 0
    148                     && (statp->options & RES_USE_EDNS0) != 0)
    149                   n = __res_nopt(statp, n, query1, bufsize, anslen / 2);
    150 
    151                 nquery1 = n;
    152                 query2 = buf + nquery1;
    153                 n = res_nmkquery(statp, QUERY, name, class, T_AAAA, NULL, 0,
    154                                  NULL, query2, bufsize - n);


I think what is happening here is the first call to res_nmkquery (line 153)
returns a 1 and also the if statement on lines 147/148 is false.  Then we add 1
to buf which is always going to give is an unaligned pointer.  Much of this is a
guess however.  I am not quite sure what the code is trying to do here.

It really looks like we are missing { } after the line 147/148 if statement.

Version-Release number of selected component (if applicable):
glibc-2.8.90-5


How reproducible:
100%

Steps to Reproduce:
1. on ia64 with recent rawhide bits run yum
2.
3.
  
Actual results:


Expected results:


Additional info:
Comment 1 Ulrich Drepper 2008-07-09 13:59:32 EDT
Should now be fixed upstream.
Comment 2 Ulrich Drepper 2008-07-20 04:54:47 EDT
Should be fixed in 2.8.90-9.  Reopen if necessary.

Note You need to log in before you can comment on or make changes to this bug.