fix bug #584595: infinite loop if ..._process*() called when decoder is ABORTED
diff --git a/src/libFLAC/stream_decoder.c b/src/libFLAC/stream_decoder.c
index 435b98d..a6b6966 100644
--- a/src/libFLAC/stream_decoder.c
+++ b/src/libFLAC/stream_decoder.c
@@ -560,6 +560,7 @@
 					return false; /* above function sets the status for us */
 				break;
 			case FLAC__STREAM_DECODER_END_OF_STREAM:
+			case FLAC__STREAM_DECODER_ABORTED:
 				return true;
 			default:
 				FLAC__ASSERT(0);
@@ -592,10 +593,9 @@
 					return false; /* above function sets the status for us */
 				break;
 			case FLAC__STREAM_DECODER_SEARCH_FOR_FRAME_SYNC:
-				return true;
 			case FLAC__STREAM_DECODER_READ_FRAME:
-				return true;
 			case FLAC__STREAM_DECODER_END_OF_STREAM:
+			case FLAC__STREAM_DECODER_ABORTED:
 				return true;
 			default:
 				FLAC__ASSERT(0);
@@ -626,6 +626,7 @@
 					return true; /* above function sets the status for us */
 				break;
 			case FLAC__STREAM_DECODER_END_OF_STREAM:
+			case FLAC__STREAM_DECODER_ABORTED:
 				return true;
 			default:
 				FLAC__ASSERT(0);
@@ -654,6 +655,7 @@
 					return false; /* above function sets the status for us */
 				break;
 			case FLAC__STREAM_DECODER_END_OF_STREAM:
+			case FLAC__STREAM_DECODER_ABORTED:
 				return true;
 			default:
 				FLAC__ASSERT(0);