A.- Der 1942 geborene R._, italienischer Staatsangehöriger, war seit Oktober 1969 als Hilfsarbeiter (Saisonnier) bei der Textilfirma X._ beschäftigt, als er am 16. April 1973 in deren Wattefabrik einen Berufsunfall erlitt. Bei Reparaturarbeiten an einer Maschine wurde er von einem Transmissionsriemen erfasst und mehrmals gegen ein Antriebsrad geschleudert. Die damals diagnostizierten Weichteilverletzungen am Rücken und an den Beinen hinterliessen teilweise breite Narben, welche aber keinerlei Beschwerden verursachten, so dass der Versicherte seine Arbeit anfangs Juli 1973 wieder voll aufnehmen konnte. Die Schweizerische Unfallversicherungsanstalt (SUVA) erbrachte die gesetzlichen Leistungen. Nachdem R._ Ende 1973 nach Italien zurückgekehrt war und in den folgenden Jahren aus familiären Gründen nicht mehr als Saison-Arbeitnehmer in der Schweiz geweilt hatte, meldete er Mitte 1979 einen ersten Rückfall, was indes keine erneuten SUVA-Leistungen auslöste. Ab April 1983 arbeitete der Versicherte - wiederum mit Saisonnier-Bewilligung - als Maurer/Handlanger bei der Y._ AG. Im Juni 1994 und erneut im März 1995 begab er sich wegen Schmerzen im linken Knie in ärztliche Behandlung, wobei er im Frühjahr 1995 zusätzlich über Rückenbeschwerden klagte. Die SUVA anerkannte eine Leistungspflicht zufolge von Rückfällen, welche auf das Unfallereignis vom 16. April 1973 zurückgehen. Mit Verfügung vom 25. Januar 1996, bestätigt durch Einspracheentscheid vom 30. Oktober 1996, sprach sie R._ eine 25 %ige Invalidenrente ab 1. Januar 1996 sowie eine Entschädigung für eine Integritätseinbusse von 15 % zu. B.- Das Verwaltungsgericht des Kantons Glarus wies die gegen den Einspracheentscheid erhobene Beschwerde, mit welcher R._ die Zusprechung einer 50 %igen Invalidenrente ab 1. Januar 1996 und einer auf einer 30 %igen Einbusse beruhenden Integritätsentschädigung beantragt hatte, mit Entscheid vom 12. Mai 1998 ab. C.- R._ führt Verwaltungsgerichtsbeschwerde mit dem Antrag auf Aufhebung des angefochtenen Entscheids und Rückweisung der Sache an das kantonale Gericht zu ergänzender Sachverhaltsabklärung und anschliessender neuer Beurteilung; mit Eventualbegehren erneuert er die vorinstanzlich gestellten Anträge. Ferner lässt er um unentgeltliche Rechtspflege (Befreiung von den Gerichtskosten und unentgeltliche Verbeiständung) ersuchen. Während Vorinstanz und SUVA auf Abweisung der Verwaltungsgerichtsbeschwerde schliessen, hat sich das Bundesamt für Sozialversicherung dazu nicht vernehmen lassen.