You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by br...@apache.org on 2013/03/14 07:13:38 UTC

svn commit: r1456339 - /subversion/trunk/subversion/bindings/javahl/native/CreateJ.cpp

Author: brane
Date: Thu Mar 14 06:13:38 2013
New Revision: 1456339

URL: http://svn.apache.org/r1456339
Log:
* subversion/bindings/javahl/native/CreateJ.cpp
  (CreateJ::ClientNotifyInformation): Silence a type conversion warning and
   check for overflow when narrowing from C unsigned long to Java int.

Modified:
    subversion/trunk/subversion/bindings/javahl/native/CreateJ.cpp

Modified: subversion/trunk/subversion/bindings/javahl/native/CreateJ.cpp
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/CreateJ.cpp?rev=1456339&r1=1456338&r2=1456339&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/native/CreateJ.cpp (original)
+++ subversion/trunk/subversion/bindings/javahl/native/CreateJ.cpp Thu Mar 14 06:13:38 2013
@@ -730,7 +730,13 @@ CreateJ::ClientNotifyInformation(const s
   jlong jhunkModifiedStart = wcNotify->hunk_modified_start;
   jlong jhunkModifiedLength = wcNotify->hunk_modified_length;
   jlong jhunkMatchedLine = wcNotify->hunk_matched_line;
-  jint jhunkFuzz = wcNotify->hunk_fuzz;
+  jint jhunkFuzz = static_cast<jint>(wcNotify->hunk_fuzz);
+  if (jhunkFuzz != wcNotify->hunk_fuzz)
+    {
+      env->ThrowNew(env->FindClass("java.lang.ArithmeticException"),
+                    "Overflow converting C unsigned long to Java int");
+      POP_AND_RETURN_NULL;
+    }
 
   // call the Java method
   jobject jInfo = env->NewObject(clazz, midCT, jPath, jAction,