Lines 730-735
mps_get_iocfacts(int fd)
Link Here
|
730 |
MPI2_IOC_FACTS_REQUEST req; |
730 |
MPI2_IOC_FACTS_REQUEST req; |
731 |
char msgver[8], sysctlname[128]; |
731 |
char msgver[8], sysctlname[128]; |
732 |
size_t len, factslen; |
732 |
size_t len, factslen; |
|
|
733 |
unsigned int major, minor; |
733 |
int error; |
734 |
int error; |
734 |
|
735 |
|
735 |
snprintf(sysctlname, sizeof(sysctlname), "dev.%s.%d.msg_version", |
736 |
snprintf(sysctlname, sizeof(sysctlname), "dev.%s.%d.msg_version", |
Lines 739-745
mps_get_iocfacts(int fd)
Link Here
|
739 |
len = sizeof(msgver); |
740 |
len = sizeof(msgver); |
740 |
error = sysctlbyname(sysctlname, msgver, &len, NULL, 0); |
741 |
error = sysctlbyname(sysctlname, msgver, &len, NULL, 0); |
741 |
if (error == 0) { |
742 |
if (error == 0) { |
742 |
if (strncmp(msgver, "2.6", sizeof(msgver)) == 0) |
743 |
if (sscanf(msgver, "%u.%u", &major, &minor) != 2) { |
|
|
744 |
warnx("Invalid message version '%s'", msgver); |
745 |
errno = EINVAL; |
746 |
return (NULL); |
747 |
} |
748 |
if (major > 2 || (major == 2 && minor >= 6)) |
743 |
factslen += 4; |
749 |
factslen += 4; |
744 |
} |
750 |
} |
745 |
|
751 |
|