Skip to content

Commit

Permalink
PAINTROID-760 Crash: Buffer underflow
Browse files Browse the repository at this point in the history
  • Loading branch information
khalid-nasralla committed Jan 4, 2025
1 parent 6b433fd commit 31cfe07
Show file tree
Hide file tree
Showing 5 changed files with 23 additions and 23 deletions.
4 changes: 1 addition & 3 deletions Paintroid/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -68,8 +68,6 @@ android {
minSdkVersion rootProject.ext.androidMinSdkVersion
targetSdkVersion rootProject.ext.androidTargetSdkVersion
testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
versionCode rootProject.ext.androidVersionCode
versionName rootProject.ext.androidVersionName
}

compileOptions {
Expand Down Expand Up @@ -125,7 +123,7 @@ dependencies {
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.8'
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.8'
implementation 'androidx.exifinterface:exifinterface:1.3.2'
implementation 'com.esotericsoftware:kryo:5.5.0'
implementation 'com.esotericsoftware:kryo:5.6.2'
implementation 'id.zelory:compressor:2.1.1'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,10 @@ import android.net.Uri
import android.os.Build
import android.os.Environment
import android.provider.MediaStore
import android.util.Log
import com.esotericsoftware.kryo.Kryo
import com.esotericsoftware.kryo.io.Input
import com.esotericsoftware.kryo.io.KryoBufferUnderflowException
import com.esotericsoftware.kryo.io.Output
import org.catrobat.paintroid.colorpicker.ColorHistory
import org.catrobat.paintroid.command.Command
Expand Down Expand Up @@ -229,24 +231,26 @@ open class CommandSerializer(private val activityContext: Context, private val c
fun readFromInternalMemory(stream: FileInputStream): WorkspaceReturnValue {
var commandModel: CommandManagerModel? = null
var colorHistory: ColorHistory? = null

Input(stream).use { input ->
if (!input.readString().equals(MAGIC_VALUE)) {
throw NotCatrobatImageException("Magic Value doesn't exist.")
}
val imageVersion = input.readInt()
if (CURRENT_IMAGE_VERSION != imageVersion) {
setRegisterMapVersion(imageVersion)
registerClasses()
}
commandModel = kryo.readObject(input, CommandManagerModel::class.java)
if (input.available() != 0) {
colorHistory = kryo.readObject(input, ColorHistory::class.java)
try {
Input(stream).use { input ->
if (!input.readString().equals(MAGIC_VALUE)) {
throw NotCatrobatImageException("Magic Value doesn't exist.")
}
val imageVersion = input.readInt()
if (CURRENT_IMAGE_VERSION != imageVersion) {
setRegisterMapVersion(imageVersion)
registerClasses()
}
commandModel = kryo.readObject(input, CommandManagerModel::class.java)
if (input.available() != 0) {
colorHistory = kryo.readObject(input, ColorHistory::class.java)
}
}
commandModel?.commands?.reverse()
} catch (e: KryoBufferUnderflowException) {
Log.e("readFromInternalMemory", "Buffer underflow: ${e.message}", e)
return WorkspaceReturnValue(null, null)
}

commandModel?.commands?.reverse()

return WorkspaceReturnValue(commandModel, colorHistory)
}

Expand Down
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ buildscript {
maven { url 'https://jitpack.io' }
}
dependencies {
classpath 'com.android.tools.build:gradle:7.2.1'
classpath 'com.android.tools.build:gradle:7.4.2'
classpath 'com.hiya:jacoco-android:0.2'
classpath 'com.github.Catrobat:Gradle:1.6.2'
classpath 'com.getkeepsafe.dexcount:dexcount-gradle-plugin:3.1.0'
Expand Down
2 changes: 0 additions & 2 deletions colorpicker/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,6 @@ android {
minSdkVersion rootProject.ext.androidMinSdkVersion
targetSdkVersion rootProject.ext.androidTargetSdkVersion
testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
versionCode rootProject.ext.androidVersionCode
versionName rootProject.ext.androidVersionName
}

compileOptions {
Expand Down
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.2-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip

0 comments on commit 31cfe07

Please sign in to comment.