- goto trunc;
- ND_TCHECK(cmp->cm_rhello);
- vers = EXTRACT_U_1(cmp->cm_rhello.rh_vers);
- eco = EXTRACT_U_1(cmp->cm_rhello.rh_eco);
- ueco = EXTRACT_U_1(cmp->cm_rhello.rh_ueco);
- memcpy((char *)&srcea, (const char *)&(cmp->cm_rhello.rh_src),
- sizeof(srcea));
- src = EXTRACT_LE_U_2(srcea.dne_remote.dne_nodeaddr);
- info = EXTRACT_U_1(cmp->cm_rhello.rh_info);
- blksize = EXTRACT_LE_U_2(cmp->cm_rhello.rh_blksize);
- priority = EXTRACT_U_1(cmp->cm_rhello.rh_priority);
- hello = EXTRACT_LE_U_2(cmp->cm_rhello.rh_hello);
+ goto invalid;
+ ND_TCHECK_SIZE(&cmp->cm_rhello);
+ vers = GET_U_1(cmp->cm_rhello.rh_vers);
+ eco = GET_U_1(cmp->cm_rhello.rh_eco);
+ ueco = GET_U_1(cmp->cm_rhello.rh_ueco);
+ src =
+ GET_LE_U_2(cmp->cm_rhello.rh_src.dne_remote.dne_nodeaddr);
+ info = GET_U_1(cmp->cm_rhello.rh_info);
+ blksize = GET_LE_U_2(cmp->cm_rhello.rh_blksize);
+ priority = GET_U_1(cmp->cm_rhello.rh_priority);
+ hello = GET_LE_U_2(cmp->cm_rhello.rh_hello);