Note: This is a public test instance of Red Hat Bugzilla. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback at bugzilla.redhat.com.
Bug 1308204
Summary: | uhd: FTBFS in rawhide | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Fedora Release Engineering <releng> | ||||||||
Component: | uhd | Assignee: | Jaroslav Škarvada <jskarvad> | ||||||||
Status: | CLOSED ERRATA | QA Contact: | Fedora Extras Quality Assurance <extras-qa> | ||||||||
Severity: | unspecified | Docs Contact: | |||||||||
Priority: | unspecified | ||||||||||
Version: | 24 | CC: | astitcher, jskarvad, jwakely, luca.giuzzi | ||||||||
Target Milestone: | --- | ||||||||||
Target Release: | --- | ||||||||||
Hardware: | Unspecified | ||||||||||
OS: | Unspecified | ||||||||||
Whiteboard: | |||||||||||
Fixed In Version: | uhd-3.9.4-2.fc24 | Doc Type: | Bug Fix | ||||||||
Doc Text: | Story Points: | --- | |||||||||
Clone Of: | Environment: | ||||||||||
Last Closed: | 2016-07-05 05:01:19 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: | |||||||||||
Bug Depends On: | |||||||||||
Bug Blocks: | 1305208 | ||||||||||
Attachments: |
|
Description
Fedora Release Engineering
2016-02-13 22:37:39 UTC
Created attachment 1126670 [details]
build.log
Created attachment 1126672 [details]
root.log
Created attachment 1126673 [details]
state.log
This bug appears to have been reported against 'rawhide' during the Fedora 24 development cycle. Changing version to '24'. More information and reason for this action is here: https://fedoraproject.org/wiki/Fedora_Program_Management/HouseKeeping/Fedora24#Rawhide_Rebase This blocks gqrx from being rebuilt in F24. The errors are: /builddir/build/BUILD/uhd-release_003_008_002/host/utils/cdecode.c: In function 'int base64_decode_value(char)': /builddir/build/BUILD/uhd-release_003_008_002/host/utils/cdecode.c:11:266: error: narrowing conversion of '-1' from 'int' to 'char' inside { } [-Wnarrowing] static const char decoding[] = {62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,-2,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,-1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51}; ^ /builddir/build/BUILD/uhd-release_003_008_002/host/utils/cdecode.c:11:266: error: narrowing conversion of '-1' from 'int' to 'char' inside { } [-Wnarrowing] /builddir/build/BUILD/uhd-release_003_008_002/host/utils/cdecode.c:11:266: error: narrowing conversion of '-1' from 'int' to 'char' inside { } [-Wnarrowing] /builddir/build/BUILD/uhd-release_003_008_002/host/utils/cdecode.c:11:266: error: narrowing conversion of '-1' from 'int' to 'char' inside { } [-Wnarrowing] /builddir/build/BUILD/uhd-release_003_008_002/host/utils/cdecode.c:11:266: error: narrowing conversion of '-1' from 'int' to 'char' inside { } [-Wnarrowing] /builddir/build/BUILD/uhd-release_003_008_002/host/utils/cdecode.c:11:266: error: narrowing conversion of '-1' from 'int' to 'char' inside { } [-Wnarrowing] /builddir/build/BUILD/uhd-release_003_008_002/host/utils/cdecode.c:11:266: error: narrowing conversion of '-2' from 'int' to 'char' inside { } [-Wnarrowing] /builddir/build/BUILD/uhd-release_003_008_002/host/utils/cdecode.c:11:266: error: narrowing conversion of '-1' from 'int' to 'char' inside { } [-Wnarrowing] /builddir/build/BUILD/uhd-release_003_008_002/host/utils/cdecode.c:11:266: error: narrowing conversion of '-1' from 'int' to 'char' inside { } [-Wnarrowing] /builddir/build/BUILD/uhd-release_003_008_002/host/utils/cdecode.c:11:266: error: narrowing conversion of '-1' from 'int' to 'char' inside { } [-Wnarrowing] /builddir/build/BUILD/uhd-release_003_008_002/host/utils/cdecode.c:11:266: error: narrowing conversion of '-1' from 'int' to 'char' inside { } [-Wnarrowing] /builddir/build/BUILD/uhd-release_003_008_002/host/utils/cdecode.c:11:266: error: narrowing conversion of '-1' from 'int' to 'char' inside { } [-Wnarrowing] /builddir/build/BUILD/uhd-release_003_008_002/host/utils/cdecode.c:11:266: error: narrowing conversion of '-1' from 'int' to 'char' inside { } [-Wnarrowing] /builddir/build/BUILD/uhd-release_003_008_002/host/utils/cdecode.c:11:266: error: narrowing conversion of '-1' from 'int' to 'char' inside { } [-Wnarrowing] /builddir/build/BUILD/uhd-release_003_008_002/host/utils/cdecode.c:11:266: error: narrowing conversion of '-1' from 'int' to 'char' inside { } [-Wnarrowing] /builddir/build/BUILD/uhd-release_003_008_002/host/utils/cdecode.c:11:266: error: narrowing conversion of '-1' from 'int' to 'char' inside { } [-Wnarrowing] I was surprised that code ever worked on ARM, and in fact it looks like it doesn't: https://sourceforge.net/p/libb64/bugs/1/ Also https://sourceforge.net/p/libb64/bugs/2/ deals with the same bug, but misses another one. I've attached an improved patch there. I think it's clear to me how to fix it (IIRC I fixed this gcc speciality in few other packages), but I am too lazy to patch it :) I will probably rebase the uhd package as I have already done in rawhide. Simply casting the literals to char won't fix it, the code is broken and doesn't work correctly (even on x86, see my comment at https://sourceforge.net/p/libb64/bugs/2/ about the off-by-one error). Thanks for info, it seems upstream workaround it the following way [1]: - they switched from c++ to c, because it's C code, so the C++11 requirements doesn't apply - they used explicit conversion the following way: if ((signed char)value_in < 0 || value_in > decoding_size) return -1; It seems to compile and work (maybe it relies on gcc behaviour - I am not good at C standards). [1] https://github.com/EttusResearch/uhd/blob/master/host/lib/usrp/x300/cdecode.c "It compiles" doesn't mean it's not still horribly broken. For a start, as I've already said, that line you quoted has an off-by-one error. If value_in == decoding_size then it accesses off the end of the array. Also, for signed char, if value_in is -128 then this subtraction: value_in -= 43; at https://github.com/EttusResearch/uhd/blob/master/host/lib/usrp/x300/cdecode.c#L13 will underflow, with undefined behaviour. And when char is unsigned this cast has implementation-defined behaviour (so it works with GCC, but could produce the wrong result and/or raise a signal with other compilers): } while ((signed char)fragment < 0); The code stinks. Right, it relies on undefined gcc behavior, but there is still off by one error. I will patch it downstream. Are you going to pull request your patch to uhd upstream? Yes, will do. Thanks. Applying https://github.com/EttusResearch/uhd/pull/60 downstream. uhd-3.9.4-2.fc24 gr-osmosdr-0.1.3-19.20141023git42c66fdd.fc24 gnuradio-3.7.9.1-4.fc24 has been submitted as an update to Fedora 24. https://bodhi.fedoraproject.org/updates/FEDORA-2016-22f4609f86 gnuradio-3.7.9.1-4.fc24, gr-osmosdr-0.1.3-19.20141023git42c66fdd.fc24, uhd-3.9.4-2.fc24 has been pushed to the Fedora 24 testing repository. If problems still persist, please make note of it in this bug report. See https://fedoraproject.org/wiki/QA:Updates_Testing for instructions on how to install test updates. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2016-22f4609f86 *** Bug 1352168 has been marked as a duplicate of this bug. *** *** Bug 1352298 has been marked as a duplicate of this bug. *** gnuradio-3.7.9.1-4.fc24, gr-osmosdr-0.1.3-19.20141023git42c66fdd.fc24, uhd-3.9.4-2.fc24 has been pushed to the Fedora 24 stable repository. If problems still persist, please make note of it in this bug report. |