On Thu, 2013-07-11 at 08:10 -0700, Ben Greear wrote: > >> /* Keep track of what bits of information we have valid info for. */ > >> u8 valid_data; > >> + char corrupt_elems_msg[80]; > > > > you should store a "what's bad" type field and the broken IE number or > > so, to reduce memory usage > > I thought of this, but the problem is then you cannot tell the details > (for instance the actual lengths when length is bad, the ID that is duplicated, etc). > I figure if we are going to provide the info to the user, we might as well > be specific about it. It doesn't seem so difficult? enum ies_parse_error { NO_ERROR, BAD_IE_LEN, // uses eid+len DUPLICATE_IE, // uses eid ... } parse_error; int parse_error_eid, parse_error_len; > >> + snprintf(elems->parse_err_msg, > >> + sizeof(elems->parse_err_msg), > >> + "seen id: %i already", id); > > > > Your snprintf() usage is also unsafe. > > What is unsafe about it? using printk("%s", result) is unsafe due to potentially missing NUL-termination. johannes -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html