* libguile/stackchk.h (SCM_STACK_OVERFLOW_P): Fix a potential overflow,
depending on the absolute values of the thread base and the stack
limit. Thanks to Ivan Shcherbakov for the report.
Frank Schwidom
John Steele Scott
Thiemo Seufer
Frank Schwidom
John Steele Scott
Thiemo Seufer
Scott Shedden
Alex Shinn
Daniel Skarda
Scott Shedden
Alex Shinn
Daniel Skarda
#ifndef SCM_STACKCHK_H
#define SCM_STACKCHK_H
#ifndef SCM_STACKCHK_H
#define SCM_STACKCHK_H
-/* Copyright (C) 1995,1996,1998,2000, 2003, 2006, 2008, 2009 Free Software Foundation, Inc.
+/* Copyright (C) 1995,1996,1998,2000, 2003, 2006, 2008, 2009, 2010 Free Software Foundation, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public License
#if defined BUILDING_LIBGUILE && defined STACK_CHECKING
# if SCM_STACK_GROWS_UP
# define SCM_STACK_OVERFLOW_P(s)\
#if defined BUILDING_LIBGUILE && defined STACK_CHECKING
# if SCM_STACK_GROWS_UP
# define SCM_STACK_OVERFLOW_P(s)\
- (SCM_STACK_PTR (s) \
- > (SCM_I_CURRENT_THREAD->base + SCM_STACK_LIMIT))
+ ((SCM_STACK_PTR (s) - SCM_I_CURRENT_THREAD->base) > SCM_STACK_LIMIT)
# else
# define SCM_STACK_OVERFLOW_P(s)\
# else
# define SCM_STACK_OVERFLOW_P(s)\
- (SCM_STACK_PTR (s) \
- < (SCM_I_CURRENT_THREAD->base - SCM_STACK_LIMIT))
+ ((SCM_I_CURRENT_THREAD->base - SCM_STACK_PTR (s)) > SCM_STACK_LIMIT)
# endif
# define SCM_CHECK_STACK\
{\
# endif
# define SCM_CHECK_STACK\
{\