antirez / antirez/sds

Null Dereferences v2.0.0

オープン
#99 コメント 2 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
C
スター
5.6k
フォーク
510
PR マージ指標
30日以内にマージされた PR はありません

説明

In many functions in file “sds.h”, the parameter “sds s” is dereferenced without checking if it is NULL. The same error is also present in some functions in file “sds.c”, such as: `sdscat`, `sdsMakeRoomFor`, `sdsRemoveFreeSpace`, `sdsdup`, `sdsupdatelen`, `sdscatrepr`, `sdscmp`, `sdstoupper`, `sdstolower`, `sdsrange`, `sdstrim`, `sdscatfmt`, `sdsclear`, `sdslen`, `sdscatvprintf`, `sdscatprintf`, `sdscpy`, `sdscpylen`, `sdscatsds`, `sdscatlen`, `sdsgrowzero`, `sdsIncrLen`, `sdsAllocSize` e `sdsAllocPtr`.

This functions should check for a parameter with value NULL and possibly return an error code in such case.

Minimal example:

```C
int sdsTest(void) {
sds x = NULL;
test_cond("Create a string and obtain the length",
sdslen(x) == 3 && memcmp(x,"foo\0",4) == 0)

sdsfree(x);
test_report();
return 0;
}
```

Forcing the variable “sds s = NULL” while running the test programs generates a segmentation fault (due to the attempt to dereference NULL).

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。