Comments (19)
Please, fix it as soon as possible.
It took me 2 days to detect this problem in my program and I'm very angry!
Every Qt application that is linked with libopenjpeg and runs in the system,
where KDE is installed, can potentionally crash, cause it loads kimg_jp2.so
plugin, linked with libjasper.
Original comment by [email protected]
on 21 Dec 2010 at 2:30
from openjpeg.
All *external* openjpeg V2 functions have an 'opj' prefix. IMHO, libjasper has
not been cautious enough by defining external functions without a jasper
prefix.
If we apply the provided patch and want to remain consistent, we should
actually rename all openjpeg functions with an 'opj' prefix. Do you guys see
another less invasive solution ?
Original comment by antonin
on 22 Dec 2010 at 10:41
- Changed state: Started
from openjpeg.
I disagree with the first two comments. C++ namespace were designed for that.
For C project this is an issue application developer needs to work with.
In GDCM we use the following mangling:
http://gdcm.git.sourceforge.net/git/gitweb.cgi?p=gdcm/gdcm;a=blob;f=Utilities/gd
cmopenjpeg/openjpeg_mangle.h.in;h=62f15ece8340cb402c319d9e756c3f30be01f921;hb=HE
AD
Original comment by mathieu.malaterre
on 22 Dec 2010 at 1:51
from openjpeg.
Selon [email protected]:
I didn't mention that I met the issue on Linux where the fact that symbols are
internal or external isn't really taken into account by the dynamic
loader/symbol resolver (internal symbols are still visible from the outside,
unless you use the visibility option of GCC4, but even in that case I've found
that it doesn't solve all situations). On Windows, this issue doesn't probably
exist however.
The symbol mangling done for GDCM isn't really an option for GDAL, where we
don't embed openjpeg code in our source tree, but rely on using the "official"
source code that the user has built independantly of GDAL.
I agree that the Jasper devs have probably not been very careful about the
namespace pollution, but as the jp2_decode and jp2_encode symbols are public for
Jasper and private for OpenJpeg, it seems more reasonable to rename them in
OpenJpeg... Now, do you need to rename all openjpeg functions with an 'opj'
prefix ? Well, it is up to you. It seems to be a pretty big change. Basically I
compared the output of nm on libjasper.so and libopenjpeg.so, and the only
intersection was jp2_encode and jp2_decode.
Original comment by [email protected]
on 22 Dec 2010 at 2:10
from openjpeg.
Jasper seems to be a dead project. Actually, that library sucks, it can easily
crash you program.
I think, the future belongs to openjpeg, so you must add 'opj' prefix to all
its functions.
I can make a complete patch. Just promise, that it will be applied :)
Original comment by [email protected]
on 22 Dec 2010 at 9:43
from openjpeg.
nice, nobody cares (
Original comment by [email protected]
on 4 Jan 2011 at 5:02
from openjpeg.
[email protected] : can you still make a complete patch (for both trunk and
v2) ?
Original comment by antonin
on 29 Jan 2011 at 2:23
from openjpeg.
I'll try this week
Original comment by [email protected]
on 30 Jan 2011 at 6:46
from openjpeg.
here is the patch for trunk
please let me know if it is suitable
Original comment by [email protected]
on 1 Feb 2011 at 9:00
Attachments:
from openjpeg.
Thanks a lot.
It seems to work ok for libopenjpeg but the patch didn't succeed in folders
jp3d, JavaOpenJPEG and OPJViewer. Maybe a problem of file encoding ... I'll
investigate this and keep you posted. Thanks again.
Original comment by antonin
on 1 Feb 2011 at 9:30
from openjpeg.
I cannot manage to patch the JP3D folder (see patchreport attached).
Do you have an idea on how to solve this ?
Original comment by antonin
on 1 Feb 2011 at 9:45
Attachments:
from openjpeg.
I tried to check out from trunk and apply the patch.
It works well.
Maybe you need to do some synchronization?
Original comment by [email protected]
on 2 Feb 2011 at 10:58
from openjpeg.
Oops, I see, something wrong with the encoding.
I'll try to fix it.
Original comment by [email protected]
on 7 Feb 2011 at 9:40
from openjpeg.
thanks ! I wait for an updated patch then.
Original comment by antonin
on 9 Feb 2011 at 10:44
from openjpeg.
Fixed for now the conflicting function (jp2_encode and jp2_decode).
volkov0aa, your patch is still welcome however :-).
Cheers,
Antonin
Original comment by antonin
on 12 Apr 2011 at 5:26
from openjpeg.
Original comment by mathieu.malaterre
on 29 May 2012 at 3:43
- Added labels: Milestone-Release2.0
from openjpeg.
even, I am tempted to close this bug. This should be handled now, within issue
#177
Original comment by mathieu.malaterre
on 1 Oct 2012 at 3:35
from openjpeg.
I think we can close it now with the 2.0 release
all the public api used opj_ prefix now and the great majority of the ABI also
Original comment by [email protected]
on 28 Nov 2012 at 12:54
- Changed state: Verified
from openjpeg.
Original comment by antonin
on 16 Sep 2014 at 11:41
- Changed state: Fixed
from openjpeg.
Related Issues (20)
- Heap-buffer-overflow in opj_dwt_decode
- Proposal to extend 'COM' comments
- Do not link with -ffast-math
- Inconsistent fixed point rounding
- opj_compress run twice gives different fiile sizes for same file HOT 3
- Might consider renaming this method:
- Potential double free on malloc failure in opj_j2k_copy_default_tcp_and_create_tcp() HOT 2
- incorrect encoding or decoding result HOT 3
- Undefined printf format specifier %ud used in code HOT 1
- Invalid write in opj_j2k_update_image_data HOT 3
- Double free in j2k_read_ppm_v3 parsing ((presumably invalid) image. HOT 1
- opj_setup_encoder always returns true HOT 3
- SIMD Acceleration for Forward DWT HOT 2
- Implement PCRD-OPT Rate Control
- opj_data/input/nonregression/issue226.j2k HOT 1
- Openjpeg3D lossy compression not working
- potential overflow in opj_j2k_get_tile_data() method
- Defect in Streaming API HOT 2
- Add buffer stream interface HOT 2
- Decode times almost double(!!) on Visual Studio 2013, 2015
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from openjpeg.