Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ds.c补丁,修复ds_hgetall崩溃的问题,另外将一些返回值与redis保持一致 #20

Closed
rchunping opened this issue Jan 28, 2013 · 1 comment

Comments

@rchunping
Copy link
Contributor

  1. 修复 ds_exists ds_hexists 结果完全不靠谱的问题
  2. 修复 ds_hgetall 调用多次后导致redis-storage崩溃的问题
  3. 统一了ds_del / ds_h** 系列函数的返回值,至少类型跟redis一致

坑爹啊,GFM怎么贴patch呢?
整个base64编码了 -_-

cat ds.c.diff |b64encode -
begin-base64 644 -
ZGlmZiAtLWdpdCBhL3NyYy9kcy5jIGIvc3JjL2RzLmMKaW5kZXggYzRjZWRlZi4uODMwMWU2NSAx
MDA2NDQKLS0tIGEvc3JjL2RzLmMKKysrIGIvc3JjL2RzLmMKQEAgLTkxLDE1ICs5MSwyMyBAQCB2
b2lkIGRzX2V4aXN0cyhyZWRpc0NsaWVudCAqYykKICAgICBpbnQgICAgICAgICAgICAgICAgICAg
aTsKICAgICBjaGFyICAgICAgICAgICAgICAgICAgKmVycjsKICAgICBsZXZlbGRiX2l0ZXJhdG9y
X3QgICAgKml0ZXI7CisJY2hhciAqa3A7c2l6ZV90IGtsOwogICAgIAogICAgIGl0ZXIgICAgID0g
bGV2ZWxkYl9jcmVhdGVfaXRlcmF0b3Ioc2VydmVyLmRzX2RiLCBzZXJ2ZXIucm9wdGlvbnMpOwog
ICAgIGFkZFJlcGx5TXVsdGlCdWxrTGVuKGMsIGMtPmFyZ2MtMSk7CiAJZm9yKGk9MTsgaTxjLT5h
cmdjOyBpKyspCiAJewogICAgICAgICBsZXZlbGRiX2l0ZXJfc2VlayhpdGVyLCBjLT5hcmd2W2ld
LT5wdHIsIHNkc2xlbigoc2RzKWMtPmFyZ3ZbaV0tPnB0cikpOwotICAgICAgICBpZihsZXZlbGRi
X2l0ZXJfdmFsaWQoaXRlcikpCi0gICAgICAgICAgICBhZGRSZXBseUxvbmdMb25nKGMsIDEpOwot
ICAgICAgICBlbHNlCisgICAgICAgIGlmKGxldmVsZGJfaXRlcl92YWxpZChpdGVyKSl7CisJCSAg
CisJCSAga3AgPSBsZXZlbGRiX2l0ZXJfa2V5KGl0ZXIsJmtsKTsKKworCQkgIGlmKCBzZHNsZW4o
KHNkcyljLT5hcmd2W2ldLT5wdHIpID09IGtsICYmIDAgPT0gbWVtY21wKGMtPmFyZ3ZbaV0tPnB0
cixrcCxrbCkpCisJCQlhZGRSZXBseUxvbmdMb25nKGMsMSk7CisJCSAgZWxzZQorCQkJYWRkUmVw
bHlMb25nTG9uZyhjLDApOworCQkgIAorICAgICAgICB9ZWxzZQogICAgICAgICAgICAgYWRkUmVw
bHlMb25nTG9uZyhjLCAwKTsKIAl9CiAgICAgCkBAIC0xMjQsNiArMTMyLDcgQEAgdm9pZCBkc19o
ZXhpc3RzKHJlZGlzQ2xpZW50ICpjKQogICAgIHNkcyAgICAgICAgICAgICAgICAgICBrZXk7CiAg
ICAgY2hhciAgICAgICAgICAgICAgICAgICplcnI7CiAgICAgbGV2ZWxkYl9pdGVyYXRvcl90ICAg
ICppdGVyOworCWNoYXIgKmtwO3NpemVfdCBrbDsKICAgICAKICAgICBrZXkgICAgICA9IHNkc2Vt
cHR5KCk7CiAgICAgaXRlciAgICAgPSBsZXZlbGRiX2NyZWF0ZV9pdGVyYXRvcihzZXJ2ZXIuZHNf
ZGIsIHNlcnZlci5yb3B0aW9ucyk7CkBAIC0xMzYsOSArMTQ1LDE1IEBAIHZvaWQgZHNfaGV4aXN0
cyhyZWRpc0NsaWVudCAqYykKICAgICAgICAga2V5ICAgICAgPSBzZHNjYXQoa2V5LCBjLT5hcmd2
W2ldLT5wdHIpOwogICAgICAgICAKICAgICAgICAgbGV2ZWxkYl9pdGVyX3NlZWsoaXRlciwga2V5
LCBzZHNsZW4oa2V5KSk7Ci0gICAgICAgIGlmKGxldmVsZGJfaXRlcl92YWxpZChpdGVyKSkKLSAg
ICAgICAgICAgIGFkZFJlcGx5TG9uZ0xvbmcoYywgMSk7Ci0gICAgICAgIGVsc2UKKyAgICAgICAg
aWYobGV2ZWxkYl9pdGVyX3ZhbGlkKGl0ZXIpKXsKKwkJCWtwID0gbGV2ZWxkYl9pdGVyX2tleShp
dGVyLCZrbCk7CisKKwkJCWlmKCBzZHNsZW4oa2V5KSA9PSBrbCAmJiAwID09IG1lbWNtcChrZXks
a3Asa2wpKQorCQkJICBhZGRSZXBseUxvbmdMb25nKGMsMSk7CisJCQllbHNlCisJCQkgIGFkZFJl
cGx5TG9uZ0xvbmcoYywwKTsKKwkJCQorICAgICAgICB9ZWxzZQogICAgICAgICAgICAgYWRkUmVw
bHlMb25nTG9uZyhjLCAwKTsKIAl9CiAgICAgCkBAIC01MzMsNyArNTQ4LDEwIEBAIHZvaWQgZHNf
aHNldChyZWRpc0NsaWVudCAqYykKIAlsZXZlbGRiX3dyaXRlYmF0Y2hfZGVzdHJveSh3Yik7CiAg
ICAgc2RzZnJlZShzdHIpOwogICAgIAotICAgIGFkZFJlcGx5KGMsc2hhcmVkLm9rKTsKKyAgICAv
L2FkZFJlcGx5KGMsc2hhcmVkLm9rKTsKKwkvLyBrZWVwIHRoZSBzYW1lIHJldHVybiB0eXBlIGFz
IHJlZGlzJ3MgaHNldAorCS8vIFRPRE86IGhvdyB0byBkaXN0aW5ndWlzaCB0aGUgY3JlYXRlKHJl
dHVybiAxKSBhbmQgdXBkYXRlKHJldHVybiAwKSA/CisgICAgYWRkUmVwbHlMb25nTG9uZyhjLDEp
OwogICAgIHJldHVybiA7CiB9CiAKQEAgLTU1NSwyMCArNTczLDQxIEBAIHZvaWQgZHNfaGdldGFs
bChyZWRpc0NsaWVudCAqYykKICAgICBsZW4gICAgID0gc2RzbGVuKHN0cik7CiAgICAga2V5d29y
ZCA9IHptYWxsb2MobGVuKzEpOwogICAgIG1lbWNweShrZXl3b3JkLCBzdHIsIGxlbik7Ci0gICAg
CisKKwlrZXl3b3JkW2xlbl0gPSAnXDAnOworCQogICAgIHNkc2NsZWFyKHN0cik7CiAgICAgaXRl
ciA9IGxldmVsZGJfY3JlYXRlX2l0ZXJhdG9yKHNlcnZlci5kc19kYiwgc2VydmVyLnJvcHRpb25z
KTsKLSAgICBmb3IobGV2ZWxkYl9pdGVyX3NlZWsoaXRlciwga2V5d29yZCwgbGVuKTsgbGV2ZWxk
Yl9pdGVyX3ZhbGlkKGl0ZXIpOyBsZXZlbGRiX2l0ZXJfbmV4dChpdGVyKSkKKyAgICBmb3IobGV2
ZWxkYl9pdGVyX3NlZWsoaXRlciwga2V5d29yZCwgbGVuKTtsZXZlbGRiX2l0ZXJfdmFsaWQoaXRl
cik7IGxldmVsZGJfaXRlcl9uZXh0KGl0ZXIpKQogICAgIHsKICAgICAgICAgCiAgICAgICAgIGtl
eV9sZW4gPSB2YWx1ZV9sZW4gPSAwOwogICAgICAgICBrZXkgICA9IGxldmVsZGJfaXRlcl9rZXko
aXRlciwgJmtleV9sZW4pOwotICAgICAgICB2YWx1ZSA9IGxldmVsZGJfaXRlcl92YWx1ZShpdGVy
LCAmdmFsdWVfbGVuKTsKLSAgICAgICAgCi0gICAgICAgIGlmKGtleV9sZW4gPT0gbGVuKQotICAg
ICAgICAgICAgY29udGludWU7Ci0gICAgICAgIGVsc2UgaWYoc3RybmNtcChrZXl3b3JkLCBrZXks
IGxlbikgIT0gMCkKKwkJCisJCS8vIElNUE9SVEFOVDoKKwkJLy8gbGV2ZWxkYl9pdGVyX3ZhbGlk
KGl0ZXIpIG1lYW5zIHRoZSBjdXJyZW50IGtleSA+PSB3aGF0IHdlIHdhbnQKKwkJLy8gZm9yIGV4
YW1wbGU6ICBzZWVrICJ0aGVrZXkqIiAKKwkJLy8gICAgICAgICAgICAgICB0aGVrZXkqICBpcyB2
YWxpZAorCQkvLyAgICAgICAgICAgICAgIHRoZWtleSoxIGlzIHZhbGlkCisJCS8vICAgICAgICAg
ICAgICAgdGhla2V6KiAgaXMgKkFMU08gVkFMSUQqICd6Jz4neScKKwkJLy8gdGhlIGNvZGU6CisJ
CS8vICAgICAgICAgaWYoa2V5X2xlbiA9PSBsZW4pCisJCS8vICAgICAgICAgICAgIGNvbnRpbnVl
OworCQkvLyAgICAgICAgIGVsc2UgaWYoc3RybmNtcChrZXl3b3JkLCBrZXksIGxlbikgIT0gMCkK
KwkJLy8gICAgICAgICAgICAgYnJlYWs7CisJCS8vICBpcyBvaywgYnV0IHdpbGwgZG8gbG90J3Mg
b2YgdXNlbGVzcyBsb29wIGluIHN1Y2ggY29uZGl0aW9uOgorCQkvLyAgZHNfaGdldGFsbCAiYSIg
LCBhbmQgdGhlcmUncyBubyBhKiBpbiBsZXZlbGRiICxhbmQgbG90J3Mgb2YgYjEgYjIgLi4uIGJO
IGluIGxldmVsZGIgOiggCisKKwkJLy8gbWFrZSBzdXJlIHRoZSBoYXNodGFibGUgaXMgdGhlIHNh
bWUKKyAgICAgICAgaWYoc3RybmNtcChrZXl3b3JkLCBrZXksIGxlbikgIT0gMCkKICAgICAgICAg
ICAgIGJyZWFrOworCisJCS8vIHNraXAgdGhlIGhhc2h0YWJsZSBpdHNlbGYKKwkJaWYoa2V5X2xl
biA9PSBsZW4pCisgICAgICAgICAgICBjb250aW51ZTsKKworCQkvLyBub3csIGtleSBpcyB2YWxp
ZCBhbmQgZ2V0IHZhbHVlIGhlcmUKKyAgICAgICAgdmFsdWUgPSBsZXZlbGRiX2l0ZXJfdmFsdWUo
aXRlciwgJnZhbHVlX2xlbik7CiAgICAgICAgIAogICAgICAgICBzdHIgPSBzZHNjYXRwcmludGYo
c3RyLCAiJCV6dVxyXG4iLCAoa2V5X2xlbi1sZW4pKTsKICAgICAgICAgc3RyID0gc2RzY2F0bGVu
KHN0ciwga2V5K2xlbiwga2V5X2xlbi1sZW4pOwpAQCAtNTk0LDExICs2MzMsMTkgQEAgdm9pZCBk
c19oZ2V0YWxsKHJlZGlzQ2xpZW50ICpjKQogICAgIH0KICAgICBlbHNlCiAgICAgeyAgIAorCSAg
CiAgICAgICAgIGhlYWRlciA9IHNkc2VtcHR5KCk7CiAgICAgICAgIGhlYWRlciA9IHNkc2NhdHBy
aW50ZihoZWFkZXIsICIqJXp1XHJcbiIsIChpKjIpKTsKICAgICAgICAgaGVhZGVyID0gc2RzY2F0
bGVuKGhlYWRlciwgc3RyLCBzZHNsZW4oc3RyKSk7CiAgICAgICAgIGFkZFJlcGx5U2RzKGMsIGhl
YWRlcik7Ci0gICAgICAgIHNkc2ZyZWUoaGVhZGVyKTsKKworICAgICAgICAvL3Nkc2ZyZWUoaGVh
ZGVyKTsKKworCQkvLyBJTVBPUlRBTlQ6CisJCS8vIGFkZFJlcGx5U2RzKGMscHRyKSB3aWxsIGNh
bGwgc2RzZnJlZShwdHIpIGJlZm9yZSByZXR1cm5lZC4KKwkJLy8gRE8gTk9UIGNhbGwgc2RzZnJl
ZShoZWFkZXIpIGhlcmUgISEhIQorCQkvLyDltKnmuoPkuobml6DmlbDmrKHvvIzlnZHniLnnmoRn
ZGLmiorpl67popjlrprkvY3lnKhsZXZlbGRiX2l0ZXJfc2Vlaygp5LiK77yMCisJCS8vIOS4q+mX
rumimOWxheeEtuWcqOi/memHjC4uLi4KICAgICB9CiAgICAgCiAgICAgc2RzZnJlZShzdHIpOwpA
QCAtNjYxLDcgKzcwOCwxMCBAQCB2b2lkIGRzX2hkZWwocmVkaXNDbGllbnQgKmMpCiAgICAgCQlh
ZGRSZXBseUVycm9yKGMsIGVycik7CiAgICAgCQlsZXZlbGRiX2ZyZWUoZXJyKTsKICAgICAgICAg
fQotICAgICAgICAKKyAgICAgCisJCS8vIE5vIHdheSB0byBrZWVwIHRoZSBzYW1lIHJldHVybiB0
eXBlIGFzIHJlZGlzJ3MgSERFTAorCQkvLyBIREVMIG5lZWRzIGF0IGxlYXN0IDIgYXJndW1lbnRz
CisJCS8vIHNvLC4uLiBzZW5kICJPSyIKICAgICAgICAgYWRkUmVwbHkoYyxzaGFyZWQub2spOwog
CX0KIAkKQEAgLTY4Nyw3ICs3MzcsMTIgQEAgdm9pZCBkc19oZGVsKHJlZGlzQ2xpZW50ICpjKQog
CQlsZXZlbGRiX2ZyZWUoZXJyKTsKIAkJcmV0dXJuIDsKIAl9Ci0JYWRkUmVwbHkoYyxzaGFyZWQu
b2spOworCisJLy8ga2VlcCB0aGUgc2FtZSByZXR1cm4gdHlwZSBhcyByZWRpcydzIEhERUwKKwkv
LyBSZXR1cm4gdmFsdWUKKwkvLyAgSW50ZWdlciByZXBseTogdGhlIG51bWJlciBvZiBmaWVsZHMg
dGhhdCB3ZXJlIHJlbW92ZWQgZnJvbSB0aGUgaGFzaCwgbm90IGluY2x1ZGluZyBzcGVjaWZpZWQg
YnV0IG5vbiBleGlzdGluZyBmaWVsZHMuCisJLy8gVE9ETzogY291bnQgdGhlIGRlbGV0ZSBvcGVy
YXRpb24KKwlhZGRSZXBseUxvbmdMb25nKGMsYy0+YXJnYy0yKTsKIAogICAgIHJldHVybiA7CiB9
CkBAIC04NzcsNyArOTMyLDkgQEAgdm9pZCBkc19kZWxldGUocmVkaXNDbGllbnQgKmMpCiAJCQls
ZXZlbGRiX2ZyZWUoZXJyKTsKIAkJCXJldHVybiA7CiAJCX0KLQkJYWRkUmVwbHkoYyxzaGFyZWQu
b2spOworCQkvL2FkZFJlcGx5KGMsc2hhcmVkLm9rKTsKKwkJLy8ga2VlcCB0aGUgc2FtZSByZXR1
cm4gdHlwZSBhcyByZWRpcydzIGRlbAorCQlhZGRSZXBseUxvbmdMb25nKGMsMSk7CiAJCXJldHVy
biA7CiAJfQogCQpAQCAtODk3LDcgKzk1NCwxMSBAQCB2b2lkIGRzX2RlbGV0ZShyZWRpc0NsaWVu
dCAqYykKIAkJbGV2ZWxkYl9mcmVlKGVycik7CiAJCXJldHVybiA7CiAJfQotCWFkZFJlcGx5KGMs
c2hhcmVkLm9rKTsKKwkvL2FkZFJlcGx5KGMsc2hhcmVkLm9rKTsKKwkvLyBrZWVwIHRoZSBzYW1l
IHJldHVybiB0eXBlIGFzIHJlZGlzJ3MgZGVsCisJLy8gVE9ETzogIGNvdW50IHRoZSBkZWxldGUg
b3BlcmF0aW9uCisJLy8gIEkgZG9uJ3Qga25vdyBob3cgdG8gY291bnQgdGhlIGRlbGV0ZSBvcGVy
YXRpb24sIHVzZSBhcmdjLTEgaW5zdGFuZC4KKwlhZGRSZXBseUxvbmdMb25nKGMsYy0+YXJnYy0x
KTsKIAogICAgIHJldHVybiA7CiB9Cg==
====

@qiye
Copy link
Owner

qiye commented Jan 29, 2013

补丁代码已经同步

@qiye qiye closed this as completed Jan 29, 2013
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants