diff --git a/Dockerfile b/Dockerfile index 6bbd5bc..f94a954 100644 --- a/Dockerfile +++ b/Dockerfile @@ -61,12 +61,14 @@ RUN if [ "$(uname -m)" = "x86_64" ]; then \ cd /tmp \ && wget https://github.com/bbernhard/signal-cli-native-builds/releases/download/v${SIGNAL_CLI_VERSION}/signal-cli-native-v${SIGNAL_CLI_VERSION}.tar.gz \ && tar xvf signal-cli-native-v${SIGNAL_CLI_VERSION}.tar.gz \ - && cp signal-cli-native-v${SIGNAL_CLI_VERSION}/x86-64/signal-cli-native /tmp/signal-cli-native; \ + && cp signal-cli-native-v${SIGNAL_CLI_VERSION}/x86-64/signal-cli-native /tmp/signal-cli-native \ + && chmod +x /tmp/signal-cli-native; \ elif [ "$(uname -m)" = "aarch64" ] ; then \ cd /tmp \ && wget https://github.com/bbernhard/signal-cli-native-builds/releases/download/v${SIGNAL_CLI_VERSION}/signal-cli-native-v${SIGNAL_CLI_VERSION}.tar.gz \ && tar xvf signal-cli-native-v${SIGNAL_CLI_VERSION}.tar.gz \ - && cp signal-cli-native-v${SIGNAL_CLI_VERSION}/arm64/signal-cli-native /tmp/signal-cli-native; \ + && cp signal-cli-native-v${SIGNAL_CLI_VERSION}/arm64/signal-cli-native /tmp/signal-cli-native \ + && chmod +x /tmp/signal-cli-native; \ elif [ "$(uname -m)" = "armv7l" ] ; then \ echo "GRAALVM doesn't support 32bit" \ && echo "Creating temporary file, otherwise the below copy doesn't work for armv7" \ diff --git a/src/client/attachment.go b/src/client/attachment.go index a51d902..5688506 100644 --- a/src/client/attachment.go +++ b/src/client/attachment.go @@ -44,6 +44,9 @@ func (attachmentEntry *AttachmentEntry) extractMetaData(attachmentData string) { } attachmentEntry.Base64 = attachmentData[base64FlagIndex+len("base64,"):] + if base64FlagIndex == 0 { + return + } metaDataKeys := map[string]string{ "data:": "MimeInfo", "filename=": "FileName", diff --git a/src/client/attachment_test.go b/src/client/attachment_test.go index 8e4e711..1482ad2 100644 --- a/src/client/attachment_test.go +++ b/src/client/attachment_test.go @@ -45,6 +45,9 @@ func Test_Attachment_ExtractMetadata_ShouldPrepareDataFor_toDataForSignal(t *tes { "-base64 +data +filename", "data:someData;filename=file.name;INVALIDMTIzNDU=", false, "data:someData;filename=file.name;INVALIDMTIzNDU=", false, "", "", "data:someData;filename=file.name;INVALIDMTIzNDU=", }, + { + "base64 prefix at start +data", "base64,data:someData", false, "data:someData", false, "", "", "data:someData", + }, } attachmentTmp := flag.String("attachment-tmp-dir", string(os.PathSeparator)+"tmp"+string(os.PathSeparator), "Attachment tmp directory")