#include "citadel.h"
#include "server.h"
#include "proto.h"
+#include "database.h"
extern struct config config;
}
cdbus = cdb_fetch(CDB_USERSUPP, lowercase_name, strlen(lowercase_name));
- if (cdbus == NULL) { /* not found */
- return(1);
+ if (cdbus == NULL) {
+ return(1); /* user not found */
}
- memcpy(usbuf, cdbus->ptr, cdbus->len);
+ memcpy(usbuf, cdbus->ptr,
+ ( (cdbus->len > sizeof(struct usersupp)) ?
+ sizeof(struct usersupp) : cdbus->len) );
cdb_free(cdbus);
return(0);
}
lowercase_name[a] = tolower(name[a]);
}
- cdb_store(CDB_USERSUPP, lowercase_name, strlen(lowercase_name),
+ cdb_store(CDB_USERSUPP,
+ lowercase_name, strlen(lowercase_name),
usbuf, sizeof(struct usersupp));
}
/*
* lputuser() - same as putuser() but locks the record
*/
-void lputuser(struct usersupp *usbuf, char *name)
-{
+void lputuser(struct usersupp *usbuf, char *name) {
putuser(usbuf,name);
end_critical_section(S_USERSUPP);
}
*/
int is_room_aide(void) {
if ( (CC->usersupp.axlevel >= 6)
- || (CC->quickroom.QRroomaide == CC->usersupp.usernum) ) return(1);
- else return(0);
+ || (CC->quickroom.QRroomaide == CC->usersupp.usernum) ) {
+ return(1);
+ }
+ else {
+ return(0);
+ }
}
/*
while(cdbus = cdb_next_item(CDB_USERSUPP), cdbus != NULL) {
bzero(usbuf, sizeof(struct usersupp));
- memcpy(usbuf, cdbus->ptr, cdbus->len);
+ memcpy(usbuf, cdbus->ptr,
+ ( (cdbus->len > sizeof(struct usersupp)) ?
+ sizeof(struct usersupp) : cdbus->len) );
cdb_free(cdbus);
if (usbuf->usernum == number) {
return(0);
cdb_rewind(CDB_USERSUPP);
while (cdbus = cdb_next_item(CDB_USERSUPP), cdbus != NULL) {
bzero(&usbuf, sizeof(struct usersupp));
- memcpy(&usbuf, cdbus->ptr, cdbus->len);
+ memcpy(&usbuf, cdbus->ptr,
+ ( (cdbus->len > sizeof(struct usersupp)) ?
+ sizeof(struct usersupp) : cdbus->len) );
cdb_free(cdbus);
if ((usbuf.flags & US_NEEDVALID)
&&(usbuf.axlevel > 0)) {
while(cdbus = cdb_next_item(CDB_USERSUPP), cdbus != NULL) {
bzero(&usbuf, sizeof(struct usersupp));
- memcpy(&usbuf, cdbus->ptr, cdbus->len);
+ memcpy(&usbuf, cdbus->ptr,
+ ( (cdbus->len > sizeof(struct usersupp)) ?
+ sizeof(struct usersupp) : cdbus->len) );
cdb_free(cdbus);
if (usbuf.axlevel > 0) {
usbuf.posted,
(int)usbuf.axlevel,
usbuf.usernum);
+
}