trusty: storageproxyd: Fix rebase of UFS support

The UFS support got rebased on top of the RPMB socket support
improperly. As a result, RPMB socket support was broken due to an
unconditional rmpb_fd = rc which would set the rpmb_fd to be connect()'s
error code in the case of an RPMB socket.

Bug: 146903427
Test: Boot Trusty+Android with the rpmb_dev mock, check for liveness
Change-Id: Ib1220dc49392f1a10369eed7716e44680bd83a66
This commit is contained in:
Matthew Maurer 2019-12-26 14:55:41 -08:00
parent e1c879c816
commit 17785fd185

View file

@ -361,6 +361,15 @@ int rpmb_open(const char* rpmb_devname, enum dev_type open_dev_type) {
return rc;
}
rpmb_fd = rc;
/* For UFS, it is prudent to check we have a sg device by calling an ioctl */
if (dev_type == UFS_RPMB) {
if ((ioctl(rpmb_fd, SG_GET_VERSION_NUM, &sg_version_num) < 0) ||
(sg_version_num < RPMB_MIN_SG_VERSION_NUM)) {
ALOGE("%s is not a sg device, or old sg driver\n", rpmb_devname);
return -1;
}
}
} else {
struct sockaddr_un unaddr;
struct sockaddr *addr = (struct sockaddr *)&unaddr;
@ -382,15 +391,6 @@ int rpmb_open(const char* rpmb_devname, enum dev_type open_dev_type) {
}
}
/* For UFS, it is prudent to check we hava a sg device by calling an ioctl */
if (dev_type == UFS_RPMB) {
if ((ioctl(rc, SG_GET_VERSION_NUM, &sg_version_num) < 0) ||
(sg_version_num < RPMB_MIN_SG_VERSION_NUM)) {
ALOGE("%s is not a sg device, or old sg driver\n", rpmb_devname);
return -1;
}
}
rpmb_fd = rc;
return 0;
}