Не удается удалить нулевой терминатор из массива байтов? - PullRequest
0 голосов
/ 03 июня 2018

Я использую эту библиотеку в Go (на OSX) для взаимодействия с DNS-сервером Windows.

При запуске приведенного ниже фрагмента я получаю сообщение об ошибке нулевого терминатора.

 $ ~/go/bin/winrm-dns-client create -d domain.com -n node-0 -t A -v 10.90.61.30
2018/06/03 12:40:22 Error creating DNS record: Reading record: Reading record: Unmarshalling response: Unmarshalling json: invalid character '\x00' after array element

Я подозреваю, что добавлен нулевой терминатор здесь , когда вспомогательный метод вызывает sprintf для объединения ответов json в массив.

Однако дажепосле добавления bytes.Trim, как показано ниже ... Я все еще получаю ошибку нулевого терминатора, и кажется, что нулевой терминатор все еще существует ...

func unmarshalResponse(resp string) ([]interface{}, error) {
    var data interface{}
    byteRespTrim := []byte(resp)
    fmt.Print("found a null terminator at -- ")
    fmt.Println(bytes.Index(byteRespTrim, []byte("\x00")))
    fmt.Print("total length = ")
    fmt.Println(len(byteRespTrim))
    byteRespTrim = bytes.Trim(byteRespTrim, "\x00")
    fmt.Print("after trim found a null terminator at -- ")
    loc := bytes.Index(byteRespTrim, []byte("\x00"))
    fmt.Print(loc)

При вызове я получаю следующее

(master)⚡ % ./windows-dns-test create -d domain.com -n openshift-node-0 -t A -v 10.90.61.30                       
found a null terminator at -- 2102
total length = 2615
after trim found a null terminator at -- 2102

1 Ответ

0 голосов
/ 03 июня 2018

Судя по вашим журналам, оскорбительный символ находится в позиции 2102, в то время как весь массив содержит 2615 элементов.

Так что, похоже, Trim не решит проблему, так как проблемане обязательно является последним символом массива.

Вы пытались удалить все вхождения, используя, например, Replace?

byteRespTrim = bytes.Replace(byteRespTrim, []byte("\x00"), []byte{}, -1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...