Skip to contentSkip to conversation

x86/ldt: silence a static checker warning

PATCH In review Dan Carpenter 2 participants 3 messages Jun 13, 2016 – Jun 14, 2016

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 x86/ldt: silence a static checker warning

It likely doesn't make a difference but my static checker complains that we put an upper bound on "size" but not a lower bound. Let's just make it unsigned.

arch/x86/kernel/ldt.c +1 -1
index 6707039b..e25b668 100644
@@ -34,7 +34,7 @@ static void flush_ldt(void *current_mm)
 }
 
 /* The caller must call finalize_ldt_struct on the result. LDT starts zeroed. */
-static struct ldt_struct *alloc_ldt_struct(int size)
+static struct ldt_struct *alloc_ldt_struct(unsigned int size)
 {
 	struct ldt_struct *new_ldt;
 	int alloc_size;
#1 lore raw
Quoted 3 lines · Dan Carpenter

It likely doesn't make a difference but my static checker complains that we put an upper bound on "size" but not a lower bound. Let's just make it unsigned.

Shouldn't oldsize and newsize in write_ldt as well as the "size" member in ldt_struct change, too?

--Andy

#2 lore raw
Quoted 9 lines · Andy Lutomirski
Quoted 3 lines · Dan Carpenter

It likely doesn't make a difference but my static checker complains that we put an upper bound on "size" but not a lower bound. Let's just make it unsigned.

Shouldn't oldsize and newsize in write_ldt as well as the "size" member in ldt_struct change, too?

Part of the joy of this check is that it complains about every time we cap the upper bound and not the lower bound so it's very thourough, but it also requires very minimal changes to silence the false positives.

We know newsize can't be negative. If we change this one variable then we know oldsize and ldt_struct size can't be negative either.

The problem really is that I haven't figured out out to deal with recursion...

	new_ldt = alloc_ldt_struct(old_mm->context.ldt->size);

On the first run through, we don't know the value of ->size here so we have to assume it can be anything.

regards,
dan carpenter