rasmus          Wed Apr  2 18:51:52 2003 EDT

  Modified files:              
    /php4/ext/bcmath    bcmath.c 
  Log:
  MFB: Check for negative precision
  
  
Index: php4/ext/bcmath/bcmath.c
diff -u php4/ext/bcmath/bcmath.c:1.52 php4/ext/bcmath/bcmath.c:1.53
--- php4/ext/bcmath/bcmath.c:1.52       Wed Mar 19 19:22:57 2003
+++ php4/ext/bcmath/bcmath.c    Wed Apr  2 18:51:52 2003
@@ -16,7 +16,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: bcmath.c,v 1.52 2003/03/20 00:22:57 sniper Exp $ */
+/* $Id: bcmath.c,v 1.53 2003/04/02 23:51:52 rasmus Exp $ */
 
 #ifdef HAVE_CONFIG_H
 #include "config.h"
@@ -97,7 +97,7 @@
        if (cfg_get_long("bcmath.scale", &bc_precision) == FAILURE) {
                bc_precision = 0;
        }
-       
+       if(bc_precision<0) bc_precision=0;
        bc_init_numbers(TSRMLS_C);
        
        return SUCCESS;
@@ -145,7 +145,7 @@
                                        WRONG_PARAM_COUNT;
                                }
                                convert_to_long_ex(scale_param);
-                               scale = (int) Z_LVAL_PP(scale_param);
+                               scale = (int) (Z_LVAL_PP(scale_param)<0) ? 
0:Z_LVAL_PP(scale_param);
                                break;
                default:
                                WRONG_PARAM_COUNT;
@@ -191,7 +191,7 @@
                                        WRONG_PARAM_COUNT;
                                }
                                convert_to_long_ex(scale_param);
-                               scale = (int) Z_LVAL_PP(scale_param);
+                               scale = (int) (Z_LVAL_PP(scale_param)<0) ? 
0:Z_LVAL_PP(scale_param);
                                break;
                default:
                                WRONG_PARAM_COUNT;
@@ -237,7 +237,7 @@
                                        WRONG_PARAM_COUNT;
                                }
                                convert_to_long_ex(scale_param);
-                               scale = (int) Z_LVAL_PP(scale_param);
+                               scale = (int) (Z_LVAL_PP(scale_param)<0) ? 
0:Z_LVAL_PP(scale_param);
                                break;
                default:
                                WRONG_PARAM_COUNT;
@@ -283,7 +283,7 @@
                                        WRONG_PARAM_COUNT;
                                }
                                convert_to_long_ex(scale_param);
-                               scale = (int) Z_LVAL_PP(scale_param);
+                               scale = (int) (Z_LVAL_PP(scale_param)<0) ? 
0:Z_LVAL_PP(scale_param);
                                break;
                default:
                                WRONG_PARAM_COUNT;
@@ -411,7 +411,7 @@
                                        WRONG_PARAM_COUNT;
                                }
                                convert_to_long_ex(scale_param);
-                               scale = (int) Z_LVAL_PP(scale_param);
+                               scale = (int) (Z_LVAL_PP(scale_param)<0) ? 
0:Z_LVAL_PP(scale_param);
                                break;
                default:
                                WRONG_PARAM_COUNT;
@@ -457,7 +457,7 @@
                                        WRONG_PARAM_COUNT;
                                }
                                convert_to_long_ex(scale_param);
-                               scale = (int) Z_LVAL_PP(scale_param);
+                               scale = (int) (Z_LVAL_PP(scale_param)<0) ? 
0:Z_LVAL_PP(scale_param);
                                break;
                default:
                                WRONG_PARAM_COUNT;
@@ -500,7 +500,7 @@
                                        WRONG_PARAM_COUNT;
                                }
                                convert_to_long_ex(scale_param);
-                               scale = (int) Z_LVAL_PP(scale_param);
+                               scale = (int) (Z_LVAL_PP(scale_param)<0) ? 
0:Z_LVAL_PP(scale_param);
                                break;
                default:
                                WRONG_PARAM_COUNT;
@@ -534,7 +534,8 @@
        }
        
        convert_to_long_ex(new_scale);
-       bc_precision = Z_LVAL_PP(new_scale);
+       bc_precision = (Z_LVAL_PP(new_scale)<0) ? 0 : Z_LVAL_PP(new_scale);
+
        RETURN_TRUE;
 }
 /* }}} */



-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to