}
break;
case 'i':
+ if (me) {
+ elfu_mElfDestroy(me);
+ }
+
printf("Opening input file %s.\n", optarg);
openElf(&hIn, optarg, ELF_C_READ);
if (!hIn.e) {
goto ERR;
} else {
printf("--reladd: Injecting %s...\n", optarg);
- elfu_mCheck(mrel);
- elfu_mReladd(me, mrel);
+ if (elfu_mCheck(mrel)) {
+ printf("--reladd: Check for input file failed.\n");
+ elfu_mElfDestroy(mrel);
+ goto ERR;
+ }
+ if (elfu_mReladd(me, mrel)) {
+ printf("--reladd: Failed.\n");
+ elfu_mElfDestroy(mrel);
+ goto ERR;
+ }
printf("--reladd: Injected %s.\n", optarg);
+ elfu_mElfDestroy(mrel);
}
}
break;
EXIT:
+ if (me) {
+ elfu_mElfDestroy(me);
+ }
+
if (hIn.e) {
closeElf(&hIn);
}