#define DL
#include "override.c"
+static void next_line(FILE *f)
+{
+ int c;
+ do {
+ c = fgetc(f);
+ } while (c != EOF && c != '\n');
+}
+
__attribute__((constructor))
static void ginge_init(void)
{
exit(1);
}
- ret = fscanf(f, "%x-%x %*s %*s %*s %*s %*s\n", &start, &end);
+ ret = fscanf(f, "%x-%x ", &start, &end);
if (ret != 2) {
perror("parse maps");
exit(1);
perror("warning: mprotect");
while (1) {
+ next_line(f);
+
ret = fscanf(f, "%x-%*s %*s %*s %*s %*s %*s\n", &start);
if (ret <= 0)
break;
#endif
fclose(f);
+ // remove self from preload, further commands (from system() and such)
+ // will be handled by ginge_prep.
+ unsetenv("LD_PRELOAD");
+ unsetenv("LD_LIBRARY_PATH");
+
emu_init((void *)lowest_segment);
}