Skip to content

Commit dcdac24

Browse files
author
Stephen Crane
committed
storageproxyd: Fix inverted conditional in error checking
check_scci_sense (now renamed unexpected_scsi_sense) was supposed to return false iff the sense data was valid and did not contain an error. This return value was inverted. Invert the return values and rename the function to clarify its role. Test: m storageproxyd Bug: 195544379 Change-Id: I3b84188aabe58345a83d2fd57bb8103e730cf365 Merged-In: I3b84188aabe58345a83d2fd57bb8103e730cf365
1 parent 1d9e35c commit dcdac24

1 file changed

Lines changed: 14 additions & 7 deletions

File tree

trusty/storage/proxy/rpmb.c

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -179,8 +179,15 @@ static void set_sg_io_hdr(sg_io_hdr_t* io_hdrp, int dxfer_direction, unsigned ch
179179
io_hdrp->timeout = TIMEOUT;
180180
}
181181

182-
/* Returns false if the sense data was valid and no errors were present */
183-
static bool check_scsi_sense(const uint8_t* sense_buf, size_t len) {
182+
/**
183+
* unexpected_scsi_sense - Check for unexpected codes in the sense buffer.
184+
* @sense_buf: buffer containing sense data
185+
* @len: length of @sense_buf
186+
*
187+
* Return: %true if the sense data is not valid or contains an unexpected sense
188+
* code, %false otherwise.
189+
*/
190+
static bool unexpected_scsi_sense(const uint8_t* sense_buf, size_t len) {
184191
uint8_t response_code = 0;
185192
uint8_t sense_key = 0;
186193
uint8_t additional_sense_code = 0;
@@ -189,14 +196,14 @@ static bool check_scsi_sense(const uint8_t* sense_buf, size_t len) {
189196

190197
if (!sense_buf || len == 0) {
191198
ALOGE("Invalid SCSI sense buffer, length: %zu\n", len);
192-
return false;
199+
return true;
193200
}
194201

195202
response_code = 0x7f & sense_buf[0];
196203

197204
if (response_code < 0x70 || response_code > 0x73) {
198205
ALOGE("Invalid SCSI sense response code: %hhu\n", response_code);
199-
return false;
206+
return true;
200207
}
201208

202209
if (response_code >= 0x72) {
@@ -234,13 +241,13 @@ static bool check_scsi_sense(const uint8_t* sense_buf, size_t len) {
234241
case 0x0f: /* COMPLETED, not present in kernel headers */
235242
ALOGD("SCSI success with sense data: key=%hhu, asc=%hhu, ascq=%hhu\n", sense_key,
236243
additional_sense_code, additional_sense_code_qualifier);
237-
return true;
244+
return false;
238245
}
239246

240247
ALOGE("Unexpected SCSI sense data: key=%hhu, asc=%hhu, ascq=%hhu\n", sense_key,
241248
additional_sense_code, additional_sense_code_qualifier);
242249
log_buf(ANDROID_LOG_ERROR, "sense buffer: ", sense_buf, len);
243-
return false;
250+
return true;
244251
}
245252

246253
static void check_sg_io_hdr(const sg_io_hdr_t* io_hdrp) {
@@ -253,7 +260,7 @@ static void check_sg_io_hdr(const sg_io_hdr_t* io_hdrp) {
253260
}
254261

255262
if (io_hdrp->masked_status != GOOD && io_hdrp->sb_len_wr > 0) {
256-
bool sense_error = check_scsi_sense(io_hdrp->sbp, io_hdrp->sb_len_wr);
263+
bool sense_error = unexpected_scsi_sense(io_hdrp->sbp, io_hdrp->sb_len_wr);
257264
if (sense_error) {
258265
ALOGE("Unexpected SCSI sense. masked_status: %hhu, host_status: %hu, driver_status: "
259266
"%hu\n",

0 commit comments

Comments
 (0)