Blame udftools-1.0.0b3-extsize.patch
|
|
ec629e8 |
diff -up udftools-1.0.0b3/libudffs/extent.c.extsize udftools-1.0.0b3/libudffs/extent.c
|
|
|
ec629e8 |
--- udftools-1.0.0b3/libudffs/extent.c.extsize 2012-01-26 09:45:22.217856499 +0100
|
|
|
ec629e8 |
+++ udftools-1.0.0b3/libudffs/extent.c 2012-01-26 09:45:43.142855067 +0100
|
|
|
ec629e8 |
@@ -50,7 +50,7 @@ cont:
|
|
|
ec629e8 |
while (start_ext != NULL && start_ext->blocks < blocks)
|
|
|
ec629e8 |
start_ext = next_extent(start_ext->next, type);
|
|
|
ec629e8 |
|
|
|
ec629e8 |
- if (start_ext->start % offset)
|
|
|
ec629e8 |
+ if (start_ext != NULL && start_ext->start % offset)
|
|
|
ec629e8 |
{
|
|
|
ec629e8 |
inc = offset - (start_ext->start % offset);
|
|
|
ec629e8 |
if (start_ext->blocks - inc < blocks)
|
|
|
ec629e8 |
@@ -62,7 +62,7 @@ cont:
|
|
|
ec629e8 |
else
|
|
|
ec629e8 |
inc = 0;
|
|
|
ec629e8 |
|
|
|
ec629e8 |
- return start_ext->start + inc;
|
|
|
ec629e8 |
+ return start_ext ? start_ext->start + inc : NULL;
|
|
|
ec629e8 |
}
|
|
|
ec629e8 |
|
|
|
ec629e8 |
struct udf_extent *prev_extent(struct udf_extent *start_ext, enum udf_space_type type)
|
|
|
f712e00 |
@@ -81,7 +81,7 @@ cont:
|
|
|
f712e00 |
while (start_ext != NULL && start_ext->blocks < blocks)
|
|
|
f712e00 |
start_ext = prev_extent(start_ext->prev, type);
|
|
|
f712e00 |
|
|
|
f712e00 |
- if ((start_ext->start + start_ext->blocks) % offset)
|
|
|
f712e00 |
+ if (start_ext != NULL && (start_ext->start + start_ext->blocks) % offset)
|
|
|
f712e00 |
{
|
|
|
f712e00 |
dec = (start_ext->start + start_ext->blocks) % offset;
|
|
|
f712e00 |
if (start_ext->blocks - dec < blocks)
|
|
|
f712e00 |
@@ -93,7 +93,7 @@ cont:
|
|
|
f712e00 |
else
|
|
|
f712e00 |
dec = 0;
|
|
|
f712e00 |
|
|
|
f712e00 |
- return start_ext->start + start_ext->blocks - dec - blocks;
|
|
|
f712e00 |
+ return start_ext ? start_ext->start + start_ext->blocks - dec - blocks : NULL;
|
|
|
f712e00 |
}
|
|
|
f712e00 |
|
|
|
f712e00 |
struct udf_extent *find_extent(struct udf_disc *disc, uint32_t start)
|
|
|
f712e00 |
|