Error-correcting Linear Codes