Code Review
/
src
/
app-framework-main.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
afm-urun: Fix infinite loop on start status
[src/app-framework-main.git]
/
src
/
wgtpkg-certs.c
diff --git
a/src/wgtpkg-certs.c
b/src/wgtpkg-certs.c
index
116e637
..
9ad9ea3
100644
(file)
--- a/
src/wgtpkg-certs.c
+++ b/
src/wgtpkg-certs.c
@@
-1,5
+1,5
@@
/*
/*
- Copyright
2015
IoT.bzh
+ Copyright
(C) 2015-2020
IoT.bzh
author: José Bollo <jose.bollo@iot.bzh>
author: José Bollo <jose.bollo@iot.bzh>
@@
-20,10
+20,11
@@
#include <openssl/x509.h>
#include "verbose.h"
#include <openssl/x509.h>
#include "verbose.h"
-#include "wgtpkg.h"
+#include "wgtpkg-certs.h"
+#include "wgtpkg-base64.h"
struct x509l {
struct x509l {
-
int
count;
+
unsigned
count;
X509 **certs;
};
X509 **certs;
};
@@
-31,7
+32,8
@@
static struct x509l certificates = { .count = 0, .certs = NULL };
static int add_certificate_x509(X509 *x)
{
static int add_certificate_x509(X509 *x)
{
- X509 **p = realloc(certificates.certs, (certificates.count + 1) * sizeof(X509*));
+ X509 **p = realloc(certificates.certs,
+ (certificates.count + 1) * sizeof(X509*));
if (!p) {
ERROR("reallocation failed for certificate");
return -1;
if (!p) {
ERROR("reallocation failed for certificate");
return -1;
@@
-41,7
+43,7
@@
static int add_certificate_x509(X509 *x)
return 0;
}
return 0;
}
-static int add_certificate_bin(const char *bin,
in
t len)
+static int add_certificate_bin(const char *bin,
size_
t len)
{
int rc;
const char *b, *e;
{
int rc;
const char *b, *e;
@@
-65,12
+67,15
@@
static int add_certificate_bin(const char *bin, int len)
int add_certificate_b64(const char *b64)
{
char *d;
int add_certificate_b64(const char *b64)
{
char *d;
- int l = base64dec(b64, &d);
- if (l > 0) {
- l = add_certificate_bin(d, l);
+ ssize_t l = base64dec(b64, &d);
+ int rc;
+ if (l < 0)
+ rc = -1;
+ else {
+ rc = add_certificate_bin(d, (size_t)l);
free(d);
}
free(d);
}
- return
l
;
+ return
rc
;
}
void clear_certificates()
}
void clear_certificates()