[BACK]Return to ssh-pkcs11-client.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / ssh

Diff for /src/usr.bin/ssh/ssh-pkcs11-client.c between version 1.15 and 1.16

version 1.15, 2019/01/21 12:53:35 version 1.16, 2020/01/25 00:03:36
Line 296 
Line 296 
 }  }
   
 int  int
 pkcs11_add_provider(char *name, char *pin, struct sshkey ***keysp)  pkcs11_add_provider(char *name, char *pin, struct sshkey ***keysp,
       char ***labelsp)
 {  {
         struct sshkey *k;          struct sshkey *k;
         int r, type;          int r, type;
         u_char *blob;          u_char *blob;
           char *label;
         size_t blen;          size_t blen;
         u_int nkeys, i;          u_int nkeys, i;
         struct sshbuf *msg;          struct sshbuf *msg;
Line 322 
Line 324 
                 if ((r = sshbuf_get_u32(msg, &nkeys)) != 0)                  if ((r = sshbuf_get_u32(msg, &nkeys)) != 0)
                         fatal("%s: buffer error: %s", __func__, ssh_err(r));                          fatal("%s: buffer error: %s", __func__, ssh_err(r));
                 *keysp = xcalloc(nkeys, sizeof(struct sshkey *));                  *keysp = xcalloc(nkeys, sizeof(struct sshkey *));
                   if (labelsp)
                           *labelsp = xcalloc(nkeys, sizeof(char *));
                 for (i = 0; i < nkeys; i++) {                  for (i = 0; i < nkeys; i++) {
                         /* XXX clean up properly instead of fatal() */                          /* XXX clean up properly instead of fatal() */
                         if ((r = sshbuf_get_string(msg, &blob, &blen)) != 0 ||                          if ((r = sshbuf_get_string(msg, &blob, &blen)) != 0 ||
                             (r = sshbuf_skip_string(msg)) != 0)                              (r = sshbuf_get_cstring(msg, &label, NULL)) != 0)
                                 fatal("%s: buffer error: %s",                                  fatal("%s: buffer error: %s",
                                     __func__, ssh_err(r));                                      __func__, ssh_err(r));
                         if ((r = sshkey_from_blob(blob, blen, &k)) != 0)                          if ((r = sshkey_from_blob(blob, blen, &k)) != 0)
                                 fatal("%s: bad key: %s", __func__, ssh_err(r));                                  fatal("%s: bad key: %s", __func__, ssh_err(r));
                         wrap_key(k);                          wrap_key(k);
                         (*keysp)[i] = k;                          (*keysp)[i] = k;
                           if (labelsp)
                                   (*labelsp)[i] = label;
                           else
                                   free(label);
                         free(blob);                          free(blob);
                 }                  }
         } else if (type == SSH2_AGENT_FAILURE) {          } else if (type == SSH2_AGENT_FAILURE) {

Legend:
Removed from v.1.15  
changed lines
  Added in v.1.16