While using strlnlen() here will guard against the insane notion that progname could be longer than PATH_MAX, it won't prevent fprintf from outputting an insane number of characters for progname should it be an unbounded string.
@araujo the format string "%.*s" can be used to bound the length of string printed. Similar to the "%*s" padding entries that follow, two arguments are passed to printf for this format: int length, and (const) char * string. Only the first length bytes are formatted.
That said, I don't think strnlen() is useful here, so the simpler thing to do is just leave it alone.