File tree Expand file tree Collapse file tree 1 file changed +9
-6
lines changed Expand file tree Collapse file tree 1 file changed +9
-6
lines changed Original file line number Diff line number Diff line change @@ -29,6 +29,7 @@ int lzma_decompress_to_file(const char *input, int output_fd)
29
29
lzma_action action = LZMA_RUN ;
30
30
lzma_stream strm = LZMA_STREAM_INIT ;
31
31
lzma_ret ret ;
32
+ int err = -1 ;
32
33
33
34
u8 buf_in [BUFSIZE ];
34
35
u8 buf_out [BUFSIZE ];
@@ -45,7 +46,7 @@ int lzma_decompress_to_file(const char *input, int output_fd)
45
46
if (ret != LZMA_OK ) {
46
47
pr_err ("lzma: lzma_stream_decoder failed %s (%d)\n" ,
47
48
lzma_strerror (ret ), ret );
48
- return -1 ;
49
+ goto err_fclose ;
49
50
}
50
51
51
52
strm .next_in = NULL ;
@@ -60,7 +61,7 @@ int lzma_decompress_to_file(const char *input, int output_fd)
60
61
61
62
if (ferror (infile )) {
62
63
pr_err ("lzma: read error: %s\n" , strerror (errno ));
63
- return -1 ;
64
+ goto err_fclose ;
64
65
}
65
66
66
67
if (feof (infile ))
@@ -74,7 +75,7 @@ int lzma_decompress_to_file(const char *input, int output_fd)
74
75
75
76
if (writen (output_fd , buf_out , write_size ) != write_size ) {
76
77
pr_err ("lzma: write error: %s\n" , strerror (errno ));
77
- return -1 ;
78
+ goto err_fclose ;
78
79
}
79
80
80
81
strm .next_out = buf_out ;
@@ -83,13 +84,15 @@ int lzma_decompress_to_file(const char *input, int output_fd)
83
84
84
85
if (ret != LZMA_OK ) {
85
86
if (ret == LZMA_STREAM_END )
86
- return 0 ;
87
+ break ;
87
88
88
89
pr_err ("lzma: failed %s\n" , lzma_strerror (ret ));
89
- return -1 ;
90
+ goto err_fclose ;
90
91
}
91
92
}
92
93
94
+ err = 0 ;
95
+ err_fclose :
93
96
fclose (infile );
94
- return 0 ;
97
+ return err ;
95
98
}
You can’t perform that action at this time.
0 commit comments