From 3ae891bbbaa3f96365f4c9fbe49e5cee26183fbc Mon Sep 17 00:00:00 2001 From: rhatto Date: Mon, 31 Jul 2006 20:45:44 +0000 Subject: initial import git-svn-id: svn+slack://slack.fluxo.info/var/svn/slackbuilds@1 370017ae-e619-0410-ac65-c121f96126d4 --- patches/bin/rpmoffset.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 patches/bin/rpmoffset.c (limited to 'patches/bin/rpmoffset.c') diff --git a/patches/bin/rpmoffset.c b/patches/bin/rpmoffset.c new file mode 100644 index 00000000..57af397c --- /dev/null +++ b/patches/bin/rpmoffset.c @@ -0,0 +1,24 @@ + +/* Find how deeply inside an .RPM the real data is */ +/* kept, and report the offset in bytes */ + +/* Wouldn't it be a lot more sane if we could just untar these things? */ + +#include + +/* These offsets keep getting bigger, so we're going to just bite a 2MB */ +/* chunk of RAM right away so that we have enough. Yeah, horrible */ +/* quick and dirty implementation, but hey -- it gets the job done. */ + +#define RPMBUFSIZ 2097152 + +main() +{ + char *buff = malloc(RPMBUFSIZ),*eb,*p; + for (p = buff, eb = buff + read(0,buff,RPMBUFSIZ); p < eb; p++) + if ((*p == '\037' && p[1] == '\213' && p[2] == '\010') || + (*p == 'B' && p[1] == 'Z' && p[2] == 'h' && '1' <= p[3] && p[3] <= '9' )) + printf("%d\n",p - buff), + exit(0); + exit(1); +} -- cgit v1.2.3