pem.c: reduce number of calls to strlen in readline
diff --git a/src/pem.c b/src/pem.c
index ff7dc6a..15f0ac2 100644
--- a/src/pem.c
+++ b/src/pem.c
@@ -41,15 +41,25 @@
static int
readline(char *line, int line_size, FILE * fp)
{
+ size_t len;
+
+ if (!*line) {
+ return -1;
+ }
if (!fgets(line, line_size, fp)) {
return -1;
}
- if (*line && line[strlen(line) - 1] == '\n') {
- line[strlen(line) - 1] = '\0';
+
+ len = strlen(line);
+ if (len > 0 && line[len - 1] == '\n') {
+ line[len - 1] = '\0';
}
- if (*line && line[strlen(line) - 1] == '\r') {
- line[strlen(line) - 1] = '\0';
+
+ len = strlen(line);
+ if (len > 0 && line[len - 1] == '\r') {
+ line[len - 1] = '\0';
}
+
return 0;
}