Loading src/admin.cpp +36 −17 Changes for src/admin.cpp: 36 added lines, 17 removed lines. Original line number Diff line number Diff line Loading @@ -152,9 +152,12 @@ namespace authdb { while (rd < end) { cur->type = EmptyData; if (rd + sizeof(AuthData::Record) > end) break; backend->setPos(rd); backend->read((unsigned char*)cur.get(), sizeof(AuthData::Record)); rd = backend->getPos() + cur->datasize; size_t next = backend->getPos() + cur->datasize; if (next < backend->getPos() || next > end) break; rd = next; if (cur->type == UserData && strcmp(cur->fieldname, "username") == 0) { class UserData udat(cur->ruid); Loading Loading @@ -193,11 +196,13 @@ namespace authdb { json_object *jfields = json_object_new_array(); size_t rd = sizeof(authdb::AuthHeader), end = backend->end(); while (rd < end) { while (rd + sizeof(AuthData::Record) <= end) { std::shared_ptr<authdb::AuthData::Record> cur = std::make_shared<authdb::AuthData::Record>(); backend->setPos(rd); backend->read((unsigned char*)cur.get(), sizeof(AuthData::Record)); rd = backend->getPos() + cur->datasize; size_t next = backend->getPos() + cur->datasize; if (next < backend->getPos() || next > end) break; rd = next; if (uid == cur->ruid && cur->type == UserData && cur->storage == TextStorage) { cur->data = new char[cur->datasize]; Loading Loading @@ -880,11 +885,13 @@ namespace authdb { Group group; size_t rd = sizeof(authdb::AuthHeader), end = backend->end(); while (rd < end) { while (rd + sizeof(AuthData::Record) <= end) { std::shared_ptr<authdb::AuthData::Record> cur = std::make_shared<authdb::AuthData::Record>(); backend->setPos(rd); backend->read((unsigned char*)cur.get(), sizeof(AuthData::Record)); rd = backend->getPos() + cur->datasize; size_t next = backend->getPos() + cur->datasize; if (next < backend->getPos() || next > end) break; rd = next; if (cur->type == GroupData && strcmp(cur->fieldname, "groupname") == 0) { class GroupData gdat(cur->ruid); Loading Loading @@ -936,11 +943,13 @@ namespace authdb { // All users (for selection) json_object *jallusers = json_object_new_array(); size_t rd = sizeof(authdb::AuthHeader), end = backend->end(); while (rd < end) { while (rd + sizeof(AuthData::Record) <= end) { std::shared_ptr<authdb::AuthData::Record> cur = std::make_shared<authdb::AuthData::Record>(); backend->setPos(rd); backend->read((unsigned char*)cur.get(), sizeof(AuthData::Record)); rd = backend->getPos() + cur->datasize; size_t next = backend->getPos() + cur->datasize; if (next < backend->getPos() || next > end) break; rd = next; if (cur->type == UserData && cur->storage == TextStorage && strcmp(cur->fieldname, "username") == 0) { cur->data = new char[cur->datasize]; backend->read((unsigned char*)cur->data, cur->datasize); Loading Loading @@ -1132,12 +1141,14 @@ namespace authdb { Gpo gpo; size_t rd = sizeof(authdb::AuthHeader), end = backend->end(); while (rd < end) { while (rd + sizeof(AuthData::Record) <= end) { std::shared_ptr<authdb::AuthData::Record> cur = std::make_shared<authdb::AuthData::Record>(); cur->type = EmptyData; backend->setPos(rd); backend->read((unsigned char*)cur.get(), sizeof(AuthData::Record)); rd = backend->getPos() + cur->datasize; size_t next = backend->getPos() + cur->datasize; if (next < backend->getPos() || next > end) break; rd = next; if (cur->type == PolicyData && strcmp(cur->fieldname, "gponame") == 0) { class GpoData gdat(cur->ruid); Loading Loading @@ -1206,11 +1217,13 @@ namespace authdb { // All groups json_object *jallgroups = json_object_new_array(); size_t rd = sizeof(AuthHeader), end = backend->end(); while (rd < end) { while (rd + sizeof(AuthData::Record) <= end) { AuthData::Record cur; backend->setPos(rd); backend->read((unsigned char*)&cur, sizeof(AuthData::Record)); rd = backend->getPos() + cur.datasize; size_t next = backend->getPos() + cur.datasize; if (next < backend->getPos() || next > end) break; rd = next; if (cur.type == GroupData && strcmp(cur.fieldname, "groupname") == 0) { cur.data = new char[cur.datasize]; backend->read((unsigned char*)cur.data, cur.datasize); Loading Loading @@ -1359,12 +1372,14 @@ namespace authdb { ServiceManager svcmgr; size_t rd = sizeof(authdb::AuthHeader), end = backend->end(); while (rd < end) { while (rd + sizeof(authdb::AuthData::Record) <= end) { std::shared_ptr<authdb::AuthData::Record> cur = std::make_shared<authdb::AuthData::Record>(); cur->type = EmptyData; backend->setPos(rd); backend->read((unsigned char*)cur.get(), sizeof(authdb::AuthData::Record)); rd = backend->getPos() + cur->datasize; size_t next = backend->getPos() + cur->datasize; if (next < backend->getPos() || next > end) break; rd = next; if (cur->type == ServiceData && std::string(cur->fieldname) == "servicename") { try { Loading Loading @@ -1624,12 +1639,14 @@ namespace authdb { Client clt; size_t rd = sizeof(authdb::AuthHeader), end = backend->end(); while (rd < end) { while (rd + sizeof(authdb::AuthData::Record) <= end) { std::shared_ptr<authdb::AuthData::Record> cur = std::make_shared<authdb::AuthData::Record>(); cur->type = EmptyData; backend->setPos(rd); backend->read((unsigned char*)cur.get(), sizeof(authdb::AuthData::Record)); rd = backend->getPos() + cur->datasize; size_t next = backend->getPos() + cur->datasize; if (next < backend->getPos() || next > end) break; rd = next; if (cur->type == ClientData && std::string(cur->fieldname) == "clientname") { try { Loading Loading @@ -1896,12 +1913,14 @@ namespace authdb { User user; size_t rd = sizeof(authdb::AuthHeader), end = backend->end(); while (rd < end) { while (rd + sizeof(AuthData::Record) <= end) { std::shared_ptr<authdb::AuthData::Record> cur = std::make_shared<authdb::AuthData::Record>(); cur->type = EmptyData; backend->setPos(rd); backend->read((unsigned char*)cur.get(), sizeof(AuthData::Record)); rd = backend->getPos() + cur->datasize; size_t next = backend->getPos() + cur->datasize; if (next < backend->getPos() || next > end) break; rd = next; if (cur->type == UserData && strcmp(cur->fieldname, "username") == 0) { class UserData udat(cur->ruid); Loading src/authdb.cpp +4 −2 Changes for src/authdb.cpp: 4 added lines, 2 removed lines. Original line number Diff line number Diff line Loading @@ -414,11 +414,13 @@ namespace authdb { size_t rd=sizeof(authdb::AuthHeader),end=backend->end(); while(rd<end){ while(rd+sizeof(AuthData::Record)<=end){ std::shared_ptr <authdb::AuthData::Record> cur=std::make_shared<authdb::AuthData::Record>(); backend->setPos(rd); backend->read((unsigned char*)cur.get(),sizeof(AuthData::Record)); rd=backend->getPos()+cur->datasize; size_t next=backend->getPos()+cur->datasize; if(next<backend->getPos() || next>end) break; rd=next; if(uid==cur->ruid && strcmp(cur->fieldname,"avatar")==0){ cur->data = new char[cur->datasize]; Loading src/data.cpp +8 −4 Changes for src/data.cpp: 8 added lines, 4 removed lines. Original line number Diff line number Diff line Loading @@ -93,11 +93,13 @@ namespace authdb { bool found=false; int rd=sizeof(authdb::AuthHeader),end=backend.end(); while(rd<end){ while(rd+sizeof(AuthData::Record)<=end){ std::shared_ptr<AuthData::Record> cur=std::make_shared<AuthData::Record>(); backend.setPos(rd); backend.read(reinterpret_cast<unsigned char*>(cur.get()),sizeof(AuthData::Record)); rd=backend.getPos()+cur->datasize; size_t next=backend.getPos()+cur->datasize; if(next<(size_t)backend.getPos() || next>(size_t)end) break; rd=next; if(uuid::uuid(cur->ruid)==rec.Data.ruid && cur->type == type){ cur->data=new char[cur->datasize]; backend.read(reinterpret_cast<unsigned char*>(cur->data),cur->datasize); Loading Loading @@ -210,12 +212,14 @@ namespace authdb { size_t end=backend.end(),rd=sizeof(AuthHeader); while(rd<end){ while(rd+sizeof(AuthData::Record)<=end){ std::shared_ptr<authdb::AuthData::Record> cur=std::make_shared<authdb::AuthData::Record>(); backend.setPos(rd); size_t wr=backend.getPos(); backend.read(reinterpret_cast<unsigned char*>(cur.get()),sizeof(AuthData::Record)); rd=backend.getPos()+cur->datasize; size_t next=backend.getPos()+cur->datasize; if(next<(size_t)backend.getPos() || next>(size_t)end) break; rd=next; if(uid==cur->ruid && type == cur->type){ std::cout << cur->datasize << std::endl; memset(cur->ruid,0,sizeof(uuid::uuid_t)); Loading src/domain.cpp +12 −6 Changes for src/domain.cpp: 12 added lines, 6 removed lines. Original line number Diff line number Diff line Loading @@ -92,10 +92,12 @@ void authdb::Domain::remove(AuthBackend& backend, const uuid::uuid &uid){ size_t rd=sizeof(authdb::AuthHeader),end=backend.end(); while(rd<end){ while(rd+sizeof(AuthData::Record)<=end){ backend.setPos(rd); backend.read((unsigned char*)&cur,sizeof(AuthData::Record)); rd=backend.getPos()+cur.datasize; size_t next=backend.getPos()+cur.datasize; if(next<backend.getPos() || next>end) break; rd=next; if( uid==cur.ruid && cur.type==DataType::DomainData && strcmp(cur.fieldname,"domainoptions")==0){ Loading @@ -119,10 +121,12 @@ bool authdb::Domain::exits(AuthBackend& backend,const uuid::uuid& did, const std size_t rd=sizeof(authdb::AuthHeader),end=backend.end(); while(rd<end){ while(rd+sizeof(AuthData::Record)<=end){ backend.setPos(rd); backend.read((unsigned char*)&cur,sizeof(AuthData::Record)); rd=backend.getPos()+cur.datasize; size_t next=backend.getPos()+cur.datasize; if(next<backend.getPos() || next>end) break; rd=next; if(cur.type==DataType::DomainData && strcmp(cur.fieldname,"domainname")==0){ cur.data=new char[cur.datasize]; backend.read((unsigned char*)cur.data,cur.datasize); Loading Loading @@ -181,13 +185,15 @@ namespace authdb { DomainInfo info; size_t rd=sizeof(authdb::AuthHeader),end=_adminbck.end(); while(rd<end){ while(rd+sizeof(AuthData::Record)<=end){ authdb::AuthData::Record cur; _adminbck.setPos(rd); _adminbck.read((unsigned char*)&cur,sizeof(AuthData::Record)); rd=_adminbck.getPos()+cur.datasize; size_t next=_adminbck.getPos()+cur.datasize; if(next<_adminbck.getPos() || next>end) break; rd=next; if(did == cur.ruid && cur.type == DataType::DomainData && strcmp(cur.fieldname,"domainname")==0){ Loading Loading
src/admin.cpp +36 −17 Changes for src/admin.cpp: 36 added lines, 17 removed lines. Original line number Diff line number Diff line Loading @@ -152,9 +152,12 @@ namespace authdb { while (rd < end) { cur->type = EmptyData; if (rd + sizeof(AuthData::Record) > end) break; backend->setPos(rd); backend->read((unsigned char*)cur.get(), sizeof(AuthData::Record)); rd = backend->getPos() + cur->datasize; size_t next = backend->getPos() + cur->datasize; if (next < backend->getPos() || next > end) break; rd = next; if (cur->type == UserData && strcmp(cur->fieldname, "username") == 0) { class UserData udat(cur->ruid); Loading Loading @@ -193,11 +196,13 @@ namespace authdb { json_object *jfields = json_object_new_array(); size_t rd = sizeof(authdb::AuthHeader), end = backend->end(); while (rd < end) { while (rd + sizeof(AuthData::Record) <= end) { std::shared_ptr<authdb::AuthData::Record> cur = std::make_shared<authdb::AuthData::Record>(); backend->setPos(rd); backend->read((unsigned char*)cur.get(), sizeof(AuthData::Record)); rd = backend->getPos() + cur->datasize; size_t next = backend->getPos() + cur->datasize; if (next < backend->getPos() || next > end) break; rd = next; if (uid == cur->ruid && cur->type == UserData && cur->storage == TextStorage) { cur->data = new char[cur->datasize]; Loading Loading @@ -880,11 +885,13 @@ namespace authdb { Group group; size_t rd = sizeof(authdb::AuthHeader), end = backend->end(); while (rd < end) { while (rd + sizeof(AuthData::Record) <= end) { std::shared_ptr<authdb::AuthData::Record> cur = std::make_shared<authdb::AuthData::Record>(); backend->setPos(rd); backend->read((unsigned char*)cur.get(), sizeof(AuthData::Record)); rd = backend->getPos() + cur->datasize; size_t next = backend->getPos() + cur->datasize; if (next < backend->getPos() || next > end) break; rd = next; if (cur->type == GroupData && strcmp(cur->fieldname, "groupname") == 0) { class GroupData gdat(cur->ruid); Loading Loading @@ -936,11 +943,13 @@ namespace authdb { // All users (for selection) json_object *jallusers = json_object_new_array(); size_t rd = sizeof(authdb::AuthHeader), end = backend->end(); while (rd < end) { while (rd + sizeof(AuthData::Record) <= end) { std::shared_ptr<authdb::AuthData::Record> cur = std::make_shared<authdb::AuthData::Record>(); backend->setPos(rd); backend->read((unsigned char*)cur.get(), sizeof(AuthData::Record)); rd = backend->getPos() + cur->datasize; size_t next = backend->getPos() + cur->datasize; if (next < backend->getPos() || next > end) break; rd = next; if (cur->type == UserData && cur->storage == TextStorage && strcmp(cur->fieldname, "username") == 0) { cur->data = new char[cur->datasize]; backend->read((unsigned char*)cur->data, cur->datasize); Loading Loading @@ -1132,12 +1141,14 @@ namespace authdb { Gpo gpo; size_t rd = sizeof(authdb::AuthHeader), end = backend->end(); while (rd < end) { while (rd + sizeof(AuthData::Record) <= end) { std::shared_ptr<authdb::AuthData::Record> cur = std::make_shared<authdb::AuthData::Record>(); cur->type = EmptyData; backend->setPos(rd); backend->read((unsigned char*)cur.get(), sizeof(AuthData::Record)); rd = backend->getPos() + cur->datasize; size_t next = backend->getPos() + cur->datasize; if (next < backend->getPos() || next > end) break; rd = next; if (cur->type == PolicyData && strcmp(cur->fieldname, "gponame") == 0) { class GpoData gdat(cur->ruid); Loading Loading @@ -1206,11 +1217,13 @@ namespace authdb { // All groups json_object *jallgroups = json_object_new_array(); size_t rd = sizeof(AuthHeader), end = backend->end(); while (rd < end) { while (rd + sizeof(AuthData::Record) <= end) { AuthData::Record cur; backend->setPos(rd); backend->read((unsigned char*)&cur, sizeof(AuthData::Record)); rd = backend->getPos() + cur.datasize; size_t next = backend->getPos() + cur.datasize; if (next < backend->getPos() || next > end) break; rd = next; if (cur.type == GroupData && strcmp(cur.fieldname, "groupname") == 0) { cur.data = new char[cur.datasize]; backend->read((unsigned char*)cur.data, cur.datasize); Loading Loading @@ -1359,12 +1372,14 @@ namespace authdb { ServiceManager svcmgr; size_t rd = sizeof(authdb::AuthHeader), end = backend->end(); while (rd < end) { while (rd + sizeof(authdb::AuthData::Record) <= end) { std::shared_ptr<authdb::AuthData::Record> cur = std::make_shared<authdb::AuthData::Record>(); cur->type = EmptyData; backend->setPos(rd); backend->read((unsigned char*)cur.get(), sizeof(authdb::AuthData::Record)); rd = backend->getPos() + cur->datasize; size_t next = backend->getPos() + cur->datasize; if (next < backend->getPos() || next > end) break; rd = next; if (cur->type == ServiceData && std::string(cur->fieldname) == "servicename") { try { Loading Loading @@ -1624,12 +1639,14 @@ namespace authdb { Client clt; size_t rd = sizeof(authdb::AuthHeader), end = backend->end(); while (rd < end) { while (rd + sizeof(authdb::AuthData::Record) <= end) { std::shared_ptr<authdb::AuthData::Record> cur = std::make_shared<authdb::AuthData::Record>(); cur->type = EmptyData; backend->setPos(rd); backend->read((unsigned char*)cur.get(), sizeof(authdb::AuthData::Record)); rd = backend->getPos() + cur->datasize; size_t next = backend->getPos() + cur->datasize; if (next < backend->getPos() || next > end) break; rd = next; if (cur->type == ClientData && std::string(cur->fieldname) == "clientname") { try { Loading Loading @@ -1896,12 +1913,14 @@ namespace authdb { User user; size_t rd = sizeof(authdb::AuthHeader), end = backend->end(); while (rd < end) { while (rd + sizeof(AuthData::Record) <= end) { std::shared_ptr<authdb::AuthData::Record> cur = std::make_shared<authdb::AuthData::Record>(); cur->type = EmptyData; backend->setPos(rd); backend->read((unsigned char*)cur.get(), sizeof(AuthData::Record)); rd = backend->getPos() + cur->datasize; size_t next = backend->getPos() + cur->datasize; if (next < backend->getPos() || next > end) break; rd = next; if (cur->type == UserData && strcmp(cur->fieldname, "username") == 0) { class UserData udat(cur->ruid); Loading
src/authdb.cpp +4 −2 Changes for src/authdb.cpp: 4 added lines, 2 removed lines. Original line number Diff line number Diff line Loading @@ -414,11 +414,13 @@ namespace authdb { size_t rd=sizeof(authdb::AuthHeader),end=backend->end(); while(rd<end){ while(rd+sizeof(AuthData::Record)<=end){ std::shared_ptr <authdb::AuthData::Record> cur=std::make_shared<authdb::AuthData::Record>(); backend->setPos(rd); backend->read((unsigned char*)cur.get(),sizeof(AuthData::Record)); rd=backend->getPos()+cur->datasize; size_t next=backend->getPos()+cur->datasize; if(next<backend->getPos() || next>end) break; rd=next; if(uid==cur->ruid && strcmp(cur->fieldname,"avatar")==0){ cur->data = new char[cur->datasize]; Loading
src/data.cpp +8 −4 Changes for src/data.cpp: 8 added lines, 4 removed lines. Original line number Diff line number Diff line Loading @@ -93,11 +93,13 @@ namespace authdb { bool found=false; int rd=sizeof(authdb::AuthHeader),end=backend.end(); while(rd<end){ while(rd+sizeof(AuthData::Record)<=end){ std::shared_ptr<AuthData::Record> cur=std::make_shared<AuthData::Record>(); backend.setPos(rd); backend.read(reinterpret_cast<unsigned char*>(cur.get()),sizeof(AuthData::Record)); rd=backend.getPos()+cur->datasize; size_t next=backend.getPos()+cur->datasize; if(next<(size_t)backend.getPos() || next>(size_t)end) break; rd=next; if(uuid::uuid(cur->ruid)==rec.Data.ruid && cur->type == type){ cur->data=new char[cur->datasize]; backend.read(reinterpret_cast<unsigned char*>(cur->data),cur->datasize); Loading Loading @@ -210,12 +212,14 @@ namespace authdb { size_t end=backend.end(),rd=sizeof(AuthHeader); while(rd<end){ while(rd+sizeof(AuthData::Record)<=end){ std::shared_ptr<authdb::AuthData::Record> cur=std::make_shared<authdb::AuthData::Record>(); backend.setPos(rd); size_t wr=backend.getPos(); backend.read(reinterpret_cast<unsigned char*>(cur.get()),sizeof(AuthData::Record)); rd=backend.getPos()+cur->datasize; size_t next=backend.getPos()+cur->datasize; if(next<(size_t)backend.getPos() || next>(size_t)end) break; rd=next; if(uid==cur->ruid && type == cur->type){ std::cout << cur->datasize << std::endl; memset(cur->ruid,0,sizeof(uuid::uuid_t)); Loading
src/domain.cpp +12 −6 Changes for src/domain.cpp: 12 added lines, 6 removed lines. Original line number Diff line number Diff line Loading @@ -92,10 +92,12 @@ void authdb::Domain::remove(AuthBackend& backend, const uuid::uuid &uid){ size_t rd=sizeof(authdb::AuthHeader),end=backend.end(); while(rd<end){ while(rd+sizeof(AuthData::Record)<=end){ backend.setPos(rd); backend.read((unsigned char*)&cur,sizeof(AuthData::Record)); rd=backend.getPos()+cur.datasize; size_t next=backend.getPos()+cur.datasize; if(next<backend.getPos() || next>end) break; rd=next; if( uid==cur.ruid && cur.type==DataType::DomainData && strcmp(cur.fieldname,"domainoptions")==0){ Loading @@ -119,10 +121,12 @@ bool authdb::Domain::exits(AuthBackend& backend,const uuid::uuid& did, const std size_t rd=sizeof(authdb::AuthHeader),end=backend.end(); while(rd<end){ while(rd+sizeof(AuthData::Record)<=end){ backend.setPos(rd); backend.read((unsigned char*)&cur,sizeof(AuthData::Record)); rd=backend.getPos()+cur.datasize; size_t next=backend.getPos()+cur.datasize; if(next<backend.getPos() || next>end) break; rd=next; if(cur.type==DataType::DomainData && strcmp(cur.fieldname,"domainname")==0){ cur.data=new char[cur.datasize]; backend.read((unsigned char*)cur.data,cur.datasize); Loading Loading @@ -181,13 +185,15 @@ namespace authdb { DomainInfo info; size_t rd=sizeof(authdb::AuthHeader),end=_adminbck.end(); while(rd<end){ while(rd+sizeof(AuthData::Record)<=end){ authdb::AuthData::Record cur; _adminbck.setPos(rd); _adminbck.read((unsigned char*)&cur,sizeof(AuthData::Record)); rd=_adminbck.getPos()+cur.datasize; size_t next=_adminbck.getPos()+cur.datasize; if(next<_adminbck.getPos() || next>end) break; rd=next; if(did == cur.ruid && cur.type == DataType::DomainData && strcmp(cur.fieldname,"domainname")==0){ Loading