Added some error-checking (particularly w.r.t. strdup()).