+ int upper_nibble, lower_nibble;
+
+ upper_nibble = hexdigit(ndo, hex[0]);
+ if (upper_nibble < 0) {
+ /*
+ * Invalid hex digit; a warning has already been
+ * printed.
+ */
+ return 0;
+ }
+ lower_nibble = hexdigit(ndo, hex[1]);
+ if (lower_nibble < 0) {
+ /*
+ * Invalid hex digit; a warning has already been
+ * printed.
+ */
+ return 0;
+ }
+ binbuf[i] = (((u_int)upper_nibble) << 4) + (((u_int)lower_nibble) << 0);