It's fine to check here, but shall we say why it's wrong?
I'd prefer something like this. if (!IS_KVADDR(pc->curcmd_private)) error(FATAL, "invalid mm_struct address: %s\n", optarg);