Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I'm with you, don't do crap like that. Always return a valid object.

  email_t theEmail = parseEmail(untrustedInput);
  if (theEmail.error != PARSE_OK) {
    return error;
  }


This is validate.

You made an email-or-error type and named it email_t and then manually checked it.

PDV returns an non-error-email type from the check method.


I don't understand; what is your suggested solution?


I'm not smart enough to suggest a fix here, I'm just pointing out that this article is not the PdV from the well known article.

But I can spot when code is doing exactly what the cited article says not to do,

This line is the "validate" in the expression "parse, don't validate":

  if (theEmail.error != PARSE_OK)
You might like it, but that's not my business. Maybe this C article should have been "parse, then validate".

You'd be better off reading the original: https://lexi-lambda.github.io/blog/2019/11/05/parse-don-t-va...


parseEmail() should either return a valid email, or not return at all; whether that means panic, exit, or jump to an error handler... is left to the implementer




Consider applying for YC's Fall 2026 batch! Applications are open till July 27.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: