aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorSteven Rostedt (VMware) <rostedt@goodmis.org>2017-11-29 15:43:16 -0500
committerSteven Rostedt (VMware) <rostedt@goodmis.org>2017-11-29 15:43:16 -0500
commit4c8f045cf2682a20a90d5b7f14d3ea587ce29400 (patch)
tree307b2bf9d0e61a3a31d963f9bb4e9523c30168d4 /lib
parent8a76c8160f17b98621e66686d042afdd7a981ece (diff)
parentc4e3d53bd9e7e7723f351dba998151eca4725af6 (diff)
Merge tag 'v4.4.98' into v4.4-rt
This is the 4.4.98 stable release Conflicts: include/linux/preempt.h
Diffstat (limited to 'lib')
-rw-r--r--lib/asn1_decoder.c4
-rw-r--r--lib/test_firmware.c11
2 files changed, 10 insertions, 5 deletions
diff --git a/lib/asn1_decoder.c b/lib/asn1_decoder.c
index faa2a3f017f8..4fa2e54b3f59 100644
--- a/lib/asn1_decoder.c
+++ b/lib/asn1_decoder.c
@@ -227,7 +227,7 @@ next_op:
hdr = 2;
/* Extract a tag from the data */
- if (unlikely(dp >= datalen - 1))
+ if (unlikely(datalen - dp < 2))
goto data_overrun_error;
tag = data[dp++];
if (unlikely((tag & 0x1f) == ASN1_LONG_TAG))
@@ -273,7 +273,7 @@ next_op:
int n = len - 0x80;
if (unlikely(n > 2))
goto length_too_long;
- if (unlikely(dp >= datalen - n))
+ if (unlikely(n > datalen - dp))
goto data_overrun_error;
hdr += n;
for (len = 0; n > 0; n--) {
diff --git a/lib/test_firmware.c b/lib/test_firmware.c
index 86374c1c49a4..841191061816 100644
--- a/lib/test_firmware.c
+++ b/lib/test_firmware.c
@@ -65,14 +65,19 @@ static ssize_t trigger_request_store(struct device *dev,
release_firmware(test_firmware);
test_firmware = NULL;
rc = request_firmware(&test_firmware, name, dev);
- if (rc)
+ if (rc) {
pr_info("load of '%s' failed: %d\n", name, rc);
- pr_info("loaded: %zu\n", test_firmware ? test_firmware->size : 0);
+ goto out;
+ }
+ pr_info("loaded: %zu\n", test_firmware->size);
+ rc = count;
+
+out:
mutex_unlock(&test_fw_mutex);
kfree(name);
- return count;
+ return rc;
}
static DEVICE_ATTR_WO(trigger_request);