267 |
|
#endif |
268 |
|
|
269 |
|
|
270 |
– |
|
270 |
|
char *sg_f_read_line(FILE *f, const char *string){ |
271 |
|
/* Max line length. 8k should be more than enough */ |
272 |
|
static char line[8192]; |
277 |
|
} |
278 |
|
} |
279 |
|
|
280 |
+ |
sg_set_error(SG_ERROR_PARSE, NULL); |
281 |
|
return NULL; |
282 |
|
} |
283 |
|
|
292 |
|
} |
293 |
|
|
294 |
|
|
295 |
– |
|
295 |
|
#ifndef HAVE_ATOLL |
296 |
|
static long long atoll(const char *s) { |
297 |
|
long long value = 0; |
449 |
|
} |
450 |
|
|
451 |
|
kvmd = kvm_openfiles(NULL, NULL, NULL, O_RDONLY, NULL); |
452 |
+ |
if(kvmd == NULL) { |
453 |
+ |
sg_set_error(SG_ERROR_KVM_OPENFILES, NULL); |
454 |
+ |
} |
455 |
|
return kvmd; |
456 |
|
} |
457 |
|
|
464 |
|
} |
465 |
|
|
466 |
|
kvmd2 = kvm_openfiles(_PATH_DEVNULL, _PATH_DEVNULL, NULL, O_RDONLY, NULL); |
467 |
+ |
if(kvmd2 == NULL) { |
468 |
+ |
sg_set_error(SG_ERROR_KVM_OPENFILES, NULL); |
469 |
+ |
} |
470 |
|
return kvmd2; |
471 |
|
} |
472 |
|
#endif |
482 |
|
mib[1] = VM_UVMEXP; |
483 |
|
|
484 |
|
if (sysctl(mib, 2, &uvm, &size, NULL, 0) < 0) { |
485 |
+ |
sg_set_error(SG_ERROR_SYSCTL, "CTL_VM.VM_UVMEXP"); |
486 |
|
return NULL; |
487 |
|
} |
488 |
|
|
512 |
|
} |
513 |
|
|
514 |
|
int sg_drop_privileges() { |
515 |
< |
if (setegid(getgid()) != 0) return -1; |
516 |
< |
if (seteuid(getuid()) != 0) return -1; |
515 |
> |
if (setegid(getgid()) != 0) { |
516 |
> |
sg_set_error(SG_ERROR_SETEGID, NULL); |
517 |
> |
return -1; |
518 |
> |
} |
519 |
> |
if (seteuid(getuid()) != 0) { |
520 |
> |
sg_set_error(SG_ERROR_SETEUID, NULL); |
521 |
> |
return -1; |
522 |
> |
} |
523 |
|
return 0; |
524 |
|
} |
525 |
|
|