[prev in list] [next in list] [prev in thread] [next in thread]
List: klik-devel
Subject: [klik-devel] [klikclient commit] r1684 -
From: codesite-noreply () google ! com
Date: 2008-08-29 15:41:42
Message-ID: 0016e64355de1ab7be04559b1760 () google ! com
[Download RAW message or body]
Author: lionel.tricon
Date: Fri Aug 29 08:41:36 2008
New Revision: 1684
Modified:
trunk/virtualization/unionfuse/trunk/fusioniso/src/fusioniso-fs.c
Log:
Improved the way we detect ELF binariesby using elf.h
Modified: trunk/virtualization/unionfuse/trunk/fusioniso/src/fusioniso-fs.c
==============================================================================
--- trunk/virtualization/unionfuse/trunk/fusioniso/src/fusioniso-fs.c
(original)
+++ trunk/virtualization/unionfuse/trunk/fusioniso/src/fusioniso-fs.c Fri
Aug 29 08:41:36 2008
@@ -94,6 +94,7 @@
#include <sys/statfs.h>
#include <iconv.h>
#include <errno.h>
+#include <elf.h>
#include "fusioniso-fs.h"
#include "fusioniso-isofs.h"
@@ -969,7 +970,7 @@
lseek(v_file, offset, SEEK_SET);
v_count = read(v_file, out_buf, size);
close(v_file);
- if (extern_glibc && offset==0 && v_count>18 && out_buf[0]==127
&& memcmp(&(out_buf[1]), "ELF",3)==0)
+ if (extern_glibc && offset==0 && v_count>18 && memcmp(out_buf,
ELFMAG, SELFMAG)==0 && out_buf[16]==ET_EXEC)
{
fs_rewrite_loader(out_buf, v_count);
}
@@ -984,7 +985,7 @@
lseek(v_file, offset, SEEK_SET);
v_count = read(v_file, out_buf, size);
close(v_file);
- if (extern_glibc && offset==0 && v_count>18 && out_buf[0]==127
&& memcmp(&(out_buf[1]), "ELF",3)==0)
+ if (extern_glibc && offset==0 && v_count>18 && out_buf[0]==127
&& memcmp(out_buf, ELFMAG, SELFMAG)==0 && out_buf[16]==ET_EXEC)
{
fs_rewrite_loader(out_buf, v_count);
}
@@ -1010,7 +1011,7 @@
if (inode->ZF) // this
file is compressed, handle it specially
{
int v_count = isofs_real_read_zf(inode, out_buf, size, offset);
- if (extern_glibc && offset==0 && v_count>18 && out_buf[0]==127 &&
memcmp(&(out_buf[1]), "ELF",3)==0)
+ if (extern_glibc && offset==0 && v_count>18 && out_buf[0]==127 &&
memcmp(out_buf, ELFMAG, SELFMAG)==0 && out_buf[16]==ET_EXEC)
{
fs_rewrite_loader(out_buf, v_count);
}
@@ -1078,7 +1079,7 @@
}
free(buf);
- if (extern_glibc && total_size>18 && offset==0 && out_buf[0]==127 &&
memcmp(&(out_buf[1]), "ELF",3)==0)
+ if (extern_glibc && total_size>18 && offset==0 && out_buf[0]==127 &&
memcmp(out_buf, ELFMAG, SELFMAG)==0 && out_buf[16]==ET_EXEC)
{
fs_rewrite_loader(out_buf, total_size);
}
_______________________________________________
klik-devel mailing list
klik-devel@kde.org
https://mail.kde.org/mailman/listinfo/klik-devel
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic