chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
libvolume_id: squashfs+LZMA compression detection
[elogind.git]
/
extras
/
volume_id
/
lib
/
squashfs.c
diff --git
a/extras/volume_id/lib/squashfs.c
b/extras/volume_id/lib/squashfs.c
index 402a114e1bb3484401cec0b00f017a58da517525..70b322df0c49bba5ee3ef92a42658dde1d5007d0 100644
(file)
--- a/
extras/volume_id/lib/squashfs.c
+++ b/
extras/volume_id/lib/squashfs.c
@@
-27,6
+27,7
@@
#include "util.h"
#define SQUASHFS_MAGIC 0x73717368
#include "util.h"
#define SQUASHFS_MAGIC 0x73717368
+#define SQUASHFS_MAGIC_LZMA 0x73687371
struct squashfs_super {
uint32_t s_magic;
struct squashfs_super {
uint32_t s_magic;
@@
-60,6
+61,11
@@
int volume_id_probe_squashfs(struct volume_id *id, uint64_t off, uint64_t size)
bswap_16(sqs->s_major), bswap_16(sqs->s_minor));
goto found;
}
bswap_16(sqs->s_major), bswap_16(sqs->s_minor));
goto found;
}
+ if (sqs->s_magic == bswap_32(SQUASHFS_MAGIC_LZMA)) {
+ snprintf(id->type_version, sizeof(id->type_version), "%u.%u",
+ sqs->s_major, sqs->s_minor);
+ goto found;
+ }
return -1;
return -1;