Comments (6)
Changed (and a bit more).
Thanks
2013/9/5 Markus Elfring [email protected]
I have looked at a few source files for your current software. I have
noticed that some checks for return codes are missing.Would you like to add more error handling for return values from functions
like the following?
- fopenhttp://pubs.opengroup.org/onlinepubs/9699919799/functions/fopen.html=>
mainhttps://github.com/strukturag/libde265/blob/aad31624ed7bdd3eb665511e569a8fb4e700525d/dec265/dec265.cc#L57- callochttp://pubs.opengroup.org/onlinepubs/9699919799/functions/calloc.html=>
de265_new_decoderhttps://github.com/strukturag/libde265/blob/aad31624ed7bdd3eb665511e569a8fb4e700525d/libde265/de265.c#L65Reply to this email directly or view it on GitHubhttps://github.com//issues/3
.
from libde265.
Thanks for your improvement.
I find it still incomplete.
- How do you think about to check the return values also from functions like "fread" and "de265_decode_data"?
- Would you like to release any memory if one of several allocations failed like in the function "allocate_info_arrays"?
Are you interested in aspect-oriented software development?
from libde265.
Fixed.
from libde265.
The added value check is wrong. How do you think about an approach like the following?
if (fread(buf, 1, BUFFER_SIZE, fh) != BUFFER_SIZE)
{
if ferror(fh)
goto handle_read_error;
else
{
...
}
}
Do you prefer a different reaction than a crash because of a null pointer that might be returned from the function "de265_new_decoder"?
I guess that it would be nice if the function "de265_init" will acknowledge by a return value if the initialisation of your software library was really successful.
Would you like to care for return values also from functions like "fwrite" and "fclose"?
Would you like to add an annotation like "warn_unused_result" to any function of your API?
from libde265.
No, on contrary, your approach is wrong. Because at the end of a file, fread will return a value smaller than BUFFER_SIZE when it reads the final bytes.
I do not want to care about errors in fclose(). First, because that code is not used (only debugging), second, because I have never seen this fail, third, because I have far more important things to add.
from libde265.
You could add the check for "feof(fh)" in the else branch. ;-)
I hope that return value ignorance can be changed.
from libde265.
Related Issues (20)
- heap-buffer-overflow `libde265/libde265/motion.cc:1719` in `derive_spatial_luma_vector_prediction` HOT 2
- heap-buffer-overflow `libde265/libde265/motion.cc:1443` in `derive_combined_bipredictive_merging_candidates` HOT 3
- heap-buffer-overflow `libde265/libde265/motion.cc:1860` in `derive_spatial_luma_vector_prediction` HOT 3
- Bug in `de265_image::alloc_image(…)` ? HOT 1
- Fix private libraries in libde265.pc for autoconf / automake build
- Switch to cmake and remove autoconf/automake HOT 3
- Heap-buffer-overflow with ASAN in dec265
- `bjoentegaard` freezing if invalid parameters has been supplied
- cmake does not compile neon code for arm architecture HOT 1
- Add sps_multilayer_extension support MV-HEVC Multiview HEVC HOT 1
- Encoder sample crash
- Error compiling in Visual Studio 2022. Missed #include: <cstdio> and <cstring> in sdl.cc?
- Adapting H.265 Video Compression for 16-Bit Integer images
- pkg-config file Libs.private needs fixing HOT 10
- sherlock265 missing last two frames HOT 1
- Feature Request: GStreamer libde265 encoder with enc265
- HELP~, dec265 decode my h265 file failed HOT 1
- Compile issue on Linux when running 'make' under sherlock265: No such file QtGui and qglobal.h HOT 1
- Heap-buffer-overflow with ASAN in dec265
- Should the destructor of decoder_context include more cleanups?
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 libde265.