libmsc/ussd: don't overwrite rc if decoding failed

Change-Id: I344e4b3a9aad617686a7ddbdeae5780fd8b07e58
diff --git a/src/libmsc/ussd.c b/src/libmsc/ussd.c
index ab59571..fe1610f 100644
--- a/src/libmsc/ussd.c
+++ b/src/libmsc/ussd.c
@@ -74,8 +74,9 @@
 	if (!rc) {
 		LOGP(DMM, LOGL_ERROR, "SS/USSD message parsing error, "
 			"rejecting request...\n");
-		rc = gsm0480_send_ussd_reject(conn, &req);
-		return rc;
+		gsm0480_send_ussd_reject(conn, &req);
+		/* The GSM 04.80 API uses inverted codes (0 means error) */
+		return -EPROTO;
 	}
 
 	/* Interrogation or releaseComplete? */