diff --git a/src/ir_decoder/CMakeLists.txt b/src/ir_decoder/CMakeLists.txt index e3836a8..6be2299 100644 --- a/src/ir_decoder/CMakeLists.txt +++ b/src/ir_decoder/CMakeLists.txt @@ -44,5 +44,5 @@ set(SOURCE_FILES_SHARED_LIB irda_utils.c include/irda_utils.h) -add_executable(irda_decoder ${SOURCE_FILES_EXECUTABLE}) -# add_library(irda_decoder SHARED ${SOURCE_FILES_SHARED_LIB}) +# add_executable(irda_decoder ${SOURCE_FILES_EXECUTABLE}) +add_library(irda_decoder SHARED ${SOURCE_FILES_SHARED_LIB}) diff --git a/src/ir_decoder/irda_decode.c b/src/ir_decoder/irda_decode.c index 9da878d..8ac7294 100644 --- a/src/ir_decoder/irda_decode.c +++ b/src/ir_decoder/irda_decode.c @@ -315,6 +315,7 @@ INT8 free_ac_context() INT8 irda_ac_file_open(const char* file_name) { + int ret = 0; #if !defined WIN32 FILE *stream = fopen(file_name, "rb"); #else @@ -338,7 +339,16 @@ INT8 irda_ac_file_open(const char* file_name) } fseek(stream, 0, SEEK_SET); - fread(binary_content, binary_length, 1, stream); + ret = fread(binary_content, binary_length, 1, stream); + + if (ret <= 0) + { + fclose(stream); + irda_free(binary_content); + binary_length = 0; + return IR_DECODE_FAILED; + } + fclose(stream); if (IR_DECODE_FAILED == irda_ac_lib_open(binary_content, binary_length)) @@ -1220,7 +1230,7 @@ INT8 get_supported_wind_direction(UINT8* supported_wind_direction) ///////////////////////////////////////////////// TV Begin ///////////////////////////////////////////////// INT8 irda_tv_file_open(const char* file_name) { - int print_index = 0; + int ret = 0; #if !defined WIN32 FILE *stream = fopen(file_name, "rb"); @@ -1244,7 +1254,15 @@ INT8 irda_tv_file_open(const char* file_name) binary_content = (UINT8*) irda_malloc(binary_length); fseek(stream, 0, SEEK_SET); - fread(binary_content, binary_length, 1, stream); + ret = fread(binary_content, binary_length, 1, stream); + if (ret <= 0) + { + fclose(stream); + irda_free(binary_content); + binary_length = 0; + return IR_DECODE_FAILED; + } + fclose(stream); if (IR_DECODE_FAILED == irda_tv_lib_open(binary_content, binary_length)) diff --git a/src/web_console/irda_decoder/libirda_decoder.so b/src/web_console/irda_decoder/libirda_decoder.so old mode 100644 new mode 100755 index 24a5ce8..5670df3 Binary files a/src/web_console/irda_decoder/libirda_decoder.so and b/src/web_console/irda_decoder/libirda_decoder.so differ