From 24a91e357b4b2207764b4945322e02a5c359ef86 Mon Sep 17 00:00:00 2001 From: Charles Keepax Date: Fri, 25 Jan 2013 10:43:13 +0000 Subject: [PATCH] compress: Return error messages correctly from compress_open The allocated compress object will be freed and bad_compress will be returned, so error messages written to the allocated compress struct will be lost. This patch writes error messages to bad_compress for error paths in compress_open, ensuring that error messages are returned correctly. Signed-off-by: Charles Keepax Signed-off-by: Vinod Koul --- compress.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/compress.c b/compress.c index 51455fc..c575acd 100644 --- a/compress.c +++ b/compress.c @@ -218,18 +218,18 @@ struct compress *compress_open(unsigned int card, unsigned int device, compress->flags = flags; if (!((flags & COMPRESS_OUT) || (flags & COMPRESS_IN))) { - oops(compress, -EINVAL, "can't deduce device direction from given flags\n"); + oops(&bad_compress, -EINVAL, "can't deduce device direction from given flags\n"); goto input_fail; } if (flags & COMPRESS_OUT) { /* this should be removed once we have capture tested */ - oops(compress, -EINVAL, "this version doesnt support capture\n"); + oops(&bad_compress, -EINVAL, "this version doesnt support capture\n"); goto input_fail; } compress->fd = open(fn, O_WRONLY); if (compress->fd < 0) { - oops(compress, errno, "cannot open device '%s'", fn); + oops(&bad_compress, errno, "cannot open device '%s'", fn); goto input_fail; } #if 0 @@ -237,14 +237,14 @@ struct compress *compress_open(unsigned int card, unsigned int device, * and treat in no support case */ if (_is_codec_supported(compress, config) == false) { - oops(compress, errno, "codec not supported\n"); + oops(&bad_compress, errno, "codec not supported\n"); goto codec_fail; } #endif fill_compress_params(config, ¶ms); if (ioctl(compress->fd, SNDRV_COMPRESS_SET_PARAMS, ¶ms)) { - oops(compress, errno, "cannot set device"); + oops(&bad_compress, errno, "cannot set device"); goto codec_fail; } -- 2.47.3