GitLab remote: HTTP Basic: доступ запрещен и фатальная аутентификация

Использование исходной строки

Да, иногда вы действительно можете это сделать. При использовании const char *, массивов символов, выделенных в стеке и строковых литералах, вы можете сделать это таким образом, что распределение памяти вообще отсутствует.

Написание такого кода требует часто большего мышления и заботы, чем использование строки или вектор, но с надлежащими методами это можно сделать. При правильных методах код может быть безопасным, но вам всегда нужно убедиться, что при копировании на char [] у вас есть какие-то гарантии на длину скопированной строки, или вы грамотно проверяете и обрабатываете негабаритные строки.

Как шаблоны могут помочь писать безопасные буферы символов

Что касается безопасности шаров char [], шаблоны могут помочь , поскольку они могут создать инкапсуляцию для обработки размера буфера для вас. Такие шаблоны, например, реализованы, например. от Microsoft, чтобы обеспечить безопасную замену для strcpy. Пример здесь извлекается из моего собственного кода, у реального кода гораздо больше методов, но этого должно быть достаточно, чтобы передать основную идею:

template <int Size>
class BString
{
  char _data[Size];

  public:
  BString()
  {
    _data[0]=0;
    // note: last character will always stay zero
    // if not, overflow occurred
    // all constructors should contain last element initialization
    // so that it can be verified during destruction
    _data[Size-1]=0;
  }
  const BString &operator = (const char *src)
  {
    strncpy(_data,src,Size-1);
    return *this;
  }

  operator const char *() const {return _data;}
};

//! overloads that make conversion of C code easier 
template <int Size>
inline const BString<Size> & strcpy(BString<Size> &dst, const char *src)
{
  return dst = src;
}
153
задан Regolith 22 September 2019 в 03:44
поделиться

1 ответ

Для меня это был некоторый другой URL мерзавца, помещенный в файл конфигурации, таким образом, я действительно изменял его вручную:

  1. Перемещение к файл .git/config и редактирование это,
  2. Удаляет недопустимый URL (если это там), и вставьте допустимого мерзавца SSH/HTTP URL как ниже пути:
[remote "origin"]
        url = git@gitlab.com:prat3ik/my-project.git

И это работало!!

0
ответ дан 23 November 2019 в 20:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: